我有代码片段来解释我在做什么以及我想要什么。
var express = require('express');
var http = require('http');
var app = express();
app.use('/', express.static(__dirname + '/static'));
var BinaryServer = require('binaryjs').BinaryServer;
var server = http.createServer(app);
var binaryServer = new BinaryServer({server:server});
var ioServer = http.createServer(app);
var io = require('socket.io').listen(ioServer);
我可以在同一个端口上运行node express和socket.io。
ioServer.listen(8080, function(){
console.log('server running at localhost:8080');
});
可以使用node express和binaryServer完成相同的操作。
server.listen(8080, function(){
console.log('server running at localhost:8080');
});
但是我想运行node express,socket.io和binaryServer在同一个端口上正在运行(在这种情况下为8080)。 有什么建议吗?
答案 0 :(得分:1)
您需要将SocketIO和binaryServer连接到同一个http server
实例,然后再启动该单个实例。
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
var binaryServer = new BinaryServer({ server:server, path: '/binary'});
server.listen(8080, function(){
console.log('http/socket/binary server running at localhost:8080');
});
设置path
,以便二元服务器不会与您的任何应用发生冲突。客户端连接也需要此路径。