higher-level <a href="http://github.com/learnboost/engine.io">engine.io</a> client.
higher-level engine.io client.
io-server is the recommended socket server, but any server that has
channel events would work fine.
$ component install matthewmueller/io
var io = IO'localhost:8080/news';// Custom eventsioon'news'// Raw socket messagesiosocketon'error'// Send a messageioemit'news' news;
Initialize a new instance of
IO. IO will pass these parameters into engine.io.
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.
Listen and respond to an
Access to the raw engine.io
socket. Useful to listen to events such as
message to all connected clients (including itself) with the given
Split a single socket into multiple channels. In other words,
#channel() creates a fresh socket without another connection.
channel is given, a unique id is used.
var io = IO'';var cheerio = iochannel'cheerio';var superagent = iochannel'superagent';cheerioemit'install';superagentemit'install';cheerioon'complete' fn;superagenton'complete' fn;
You can also split an already split socket:
var script = iochannel'scriptID';var cheerio = scriptchannel'cheerio';console.logcheerio$channel // scriptID:cheerio
Close the connection
Note you'll need serve