2010-12-10 69 views

回答

1

你并不需要socket.io一个连接中间件和INFACT它可能不是去了解使用socket.io与连接的最佳方式。这是我做的:

var connect = require('connect'); 
var io = require('socket.io'); 

var server = connect.createServer(
    connect.router(function(app) { 
    app.get('/', function(req, res, next) { 
     res.writeHead(200, {'Content-Type': 'text/html'}); 
     res.end(fs.readFileSync(__dirname + '/assets/index.html', 'utf8')); 
     // above file contains <script src="/socket.io/socket.io.js" type="text/javascript"></script> 
    }); 
    }) 
).listen(80); 

var socket = io.listen(server); 
socket.on('connection', function(client) { 
    client.on('message', function(message) {console.log(message)}); 
    client.on('disconnect', function() {}); 
}); 
+0

'readFileSync'将会扩展...... gnah,不会在这里开始火焰战争。 – 2010-12-14 17:19:03

+1

我相信在展示某人的例子,而不是为他们做他们的工作,这是你似乎相信伊沃:) – 2010-12-14 17:33:56

+0

@Robin当然,我总是发布“codez”。即使我有时会发布代码,但我不会发布代码不完整且设计不好的代码。 – 2010-12-14 17:44:58

2

现在,对于WebSockets来说这是一个糟糕的时间,Mozilla和Opera将不会推出即将推出的版本,这是由于协议和代理破坏导致缓存中毒的问题。在协议修复之前,Google很可能会放弃支持。

因此,到目前为止,搜索中间件没什么意义,因为协议很快就会改变,然后您必须再次搜索,所以现在您可以使用修补程序版本,如果你真的需要。

有关详细信息,请参阅:
http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/
http://blog.pusherapp.com/2010/12/9/it-s-not-websockets-it-s-your-broken-proxy

+1

对于WebSockets来说这不是一个糟糕的时刻,当然也不适用于Socket.IO,因为它有大量的回退来模拟它们。 – 2010-12-14 17:02:15

+0

呃,对不起。它是?目前他们已经死了,直到一个新规格出现并被整合(提示:这将至少需要半年甚至更长的时间......),他还特别寻找了一个WebSocket中间件。当然,所有的后退仍然很好,但那些不是WebSockets,而Socket.IO尽力模拟所有的Socket行为,但用户体验仍然不同于“真正的套接字”。 – 2010-12-14 17:07:49

+0

@RobinDuckett你有没有看到整个FF4和Opera由于协议中的安全缺陷而不支持发布的websockets。如果chrome在9或更高版本中遵循套件,我不会感到惊讶。 (尽管我会非常失望。) – Raynos 2010-12-14 17:17:20