0

我的 Express 应用同时监听 HTTP 和 HTTPS:

var app = express()
  , srv = http.createServer(app)
  , ssl = https.createServer({ ... }, app);

我可以让 socket.io 监听其中一个服务器,但不能同时监听两个:

var io = require('socket.io').listen(srv); // now what about `ssl`?

如何让单个 socket.io 实例同时监听 HTTP 和 HTTPS 服务器?我想拨打一个io.emit(...)电话,将消息发送到通过 HTTP 和 HTTPS 连接的客户端。

4

1 回答 1

0

这是您可以根据阅读源代码(未经测试)尝试的一件事:

https://github.com/LearnBoost/socket.io/blob/64f6b244b6bd79880ba2e0ba00778a2309b39d0b/lib/index.js#L127

var engine = require('engine.io');
var httpsEIO =  engine.attach(server.https, {path: '/socket.io'});
server.ws.bind(eio);

或在 0.9-land 中手动复制这些绑定:

https://github.com/LearnBoost/socket.io/blob/64d8f572aa9291889dd766e7b5832fc6f23b32a3/lib/manager.js#L103

于 2013-10-03T15:38:10.647 回答