ome*_*rts 5 javascript websocket socket.io
从Socket.IO lib(或任何其他示例)查看以下示例:
// note, io(<port>) will create a http server for you
var io = require('socket.io')(80);
io.on('connection', function (socket) {
io.emit('this', { will: 'be received by everyone'});
socket.on('private message', function (from, msg) {
console.log('I received a private message by ', from, ' saying ', msg);
});
socket.on('disconnect', function () {
io.emit('user disconnected');
});
});
Run Code Online (Sandbox Code Playgroud)
似乎Socket.IO总是依赖于http服务器,它会为你创建一个,就像上面的例子一样.
由于websockets不是HTTP,为什么需要http服务器?如果它只是为了后备,为什么它如此集成?
rob*_*lep 10
由于websockets不是HTTP,为什么需要http服务器?
你的问题似乎基于的前提是它socket.io
是一个websocket库,它不是.
这是一个实时,双向的基于事件的通信库(来自主页的模糊).它使用的传输之一是websockets,但它也提供其他传输(XHR/JSONP),不仅作为后备,而且还适用于不支持/不需要/需要websockets的情况.
在传输之上,它提供了额外的功能,如分段(名称空间,房间),确认,广播等.
即使可以使用websockets,初始连接也可以通过HTTP完成.此外,socket.io
服务器将附加到HTTP服务器,以便它可以通过它自己的客户端代码/socket.io/socket.io.js
.
也就是说,尽管您不需要 HTTP服务器来使用常规的websockets,但不可否认的是websocket协议的设计考虑了HTTP(为了允许HTTP和websocket服务器在同一个TCP端口上共存).
归档时间: |
|
查看次数: |
1769 次 |
最近记录: |