2010-12-10 107 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