You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
io-server is the recommended socket server, but any server that has event and channel events would work fine.
Installation
$ component install matthewmueller/io
Example
vario=IO('localhost:8080/news');// Custom eventsio.on('news',function(news){...})// Raw socket messagesio.socket.on('error',function(err){...})// Send a messageio.emit('news',news);
API
IO(uri, [options])
Initialize a new instance of IO. IO will pass these parameters into engine.io.
Pooling
IO supports url-based pooling or "rooms". If you connect with a pathname, IO will send the pathname to the server as a querystring. It's the responsibilty of the server to place these connections into rooms. io-server supports this kind of pooling.
IO('localhost:8080/news/today')// internally: new EngineIO('localhost:8080/?pathname=news/today');IO('localhost:8080/news/tomorrow')// different pool than `/news/today`IO('localhost:8080/news')// gets updates from both `/news/today` and `/news/tomorrow`
Why convert pathname to querystring?
Engine.io squelches pathnames but maintains query parameters, so IO converts any pathname to a querystring to that it can be obtained on the server-side.
io#on(event, fn)
Listen and respond to an event.
io#socket
Access to the raw engine.io socket. Useful to listen to events such as open, close, etc.
io#emit(event, message)
Send a message to all connected clients (including itself) with the given event.
io.emit('reminder',data);
io#channel([channel])
Split a single socket into multiple channels. In other words, #channel() creates a fresh socket without another connection.