首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用节点集群不断地连接/断开套接字连接

使用节点集群不断地连接/断开套接字连接
EN

Stack Overflow用户
提问于 2016-07-28 07:13:25
回答 1查看 918关注 0票数 2

我使用节点4.2,需要构建通过套接字连接到客户端的服务器。由于应用程序不是web,我的套接字连接正在中断,并不断地重新连接.

但是,请查看下面的服务器代码:

代码语言:javascript
复制
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);
    });

});

}

但是,请查看下面的客户端代码:

代码语言:javascript
复制
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。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2020-05-21 13:56:33

试试这个:

服务器端:

代码语言:javascript
复制
var io = require('socket.io')(server {transports: [ 'websocket', 'polling' ] });

客户端:

代码语言:javascript
复制
var conn = io.connect(serverUrl {transports: [ 'websocket', 'polling' ] });

如果您正在使用Android客户端:

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38629430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档