我使用节点4.2,需要构建通过套接字连接到客户端的服务器。由于应用程序不是web,我的套接字连接正在中断,并不断地重新连接.
但是,请查看下面的服务器代码:
var cluster = require('cluster');
var clusterWorkerSize = require('os').cpus().length;
var sticky = require('sticky-session');
var server = require('http').createServer(function(req, res) {
res.end('worker: ' + cluster.worker.id);
});
if (!sticky.listen(server, 14001)) {
console.log('master');
server.once('listening', function() {
console.log('server started on 14001 port');
});
} else {
console.log('worker: ' + cluster.worker.id);
var io = require('socket.io')(server);
io.on('connection', function(socket){
var userID = socket.id;
console.log("connected "+userID);
socket.on('disconnect', function() {
console.log('Got disconnect!'+userID);
});
});
}但是,请查看下面的客户端代码:
var io = require('socket.io-client');
var serverUrl = 'http://localhost:14001';
var conn = io.connect(serverUrl);
conn.on('connect', function () {
var sessionId = conn.io.engine.id;
console.log(sessionId);
});如果我做错了什么,请指点我。注意:我正在初始化worker中的socket io。
提前谢谢。
发布于 2020-05-21 13:56:33
试试这个:
服务器端:
var io = require('socket.io')(server {transports: [ 'websocket', 'polling' ] });客户端:
var conn = io.connect(serverUrl {transports: [ 'websocket', 'polling' ] });如果您正在使用Android客户端:
IO.Options opt = new IO.Options();
String[] trspt = {"websocket", "polling"};
opt.transports = trspt;
conn = IO.socket(serverUrl, opt);字体:https://medium.com/@codeandcam/clustering-an-express-socket-io-server-with-pm2-789d11865f95
https://stackoverflow.com/questions/38629430
复制相似问题