0.27.0 • Published 2 years ago

get-socket v0.27.0

Weekly downloads
4
License
ISC
Repository
github
Last release
2 years ago

The interfaces for using WebSockets can vary a lot between Node libraries, socket servers, and the browser. It can be tricky getting both ends to talk to each other.

Get-socket provides a consistent interface you can use everywhere.

Set up a server to listen for socket connections:

var http = require("http")
var getSocket = require("get-socket")
var server = http.createServer()

getSocket.handleConnections(
  server,
  function(socket, next) {
    socket.listen(function(message) {
      console.log(message)
    })
  }
)

server.start(4040)

Then use getSocket to send a message:

getSocket("ws://localhost:4040",
  function(socket) {
    socket.send("hello, server!")
  }
)

Or listen for messages from the server:

getSocket.handleConnections(
  server,
  function(socket, next) {
    socket.listen(function(message) {
      console.log(message)
    })

    socket.send("hello, client!")
  }
)

Or use browser-bridge to do the same from the browser:

var http = require("http")
var getSocket = require("get-socket")
var BrowserBridge = require("browser-bridge")

var server = http.createServer(sendPage)

function sendPage(request, response) {
  var bridge = new BrowserBridge()

  var listen = bridge.defineFunction(
    [getSocket.defineOn(bridge)],
    function(getSocket) {
      getSocket(function(socket) {
        socket.send("greetings from the browser!")

        socket.listen(console.log)
      })
    }
  )

  bridge.asap(listen)

  response.writeHead(200)
  response.end(bridge.toHtml())
}

Check out demo.js for the complete example.

Also recommended

GetSocket lets you set up generic connection handlers for all incoming connections, but if you want to set up different listeners for different clients in advance, consider single-use-socket.

0.27.0

2 years ago

0.26.0

4 years ago

0.25.0

5 years ago

0.24.0

5 years ago

0.23.0

5 years ago

0.22.0

6 years ago

0.21.0

6 years ago

0.20.0

7 years ago

0.19.0

7 years ago

0.18.0

7 years ago

0.17.0

7 years ago

0.16.0

8 years ago

0.15.0

8 years ago

0.14.0

8 years ago

0.13.0

8 years ago