简体   繁体   English

socket.io 服务器不断收到连接事件,但客户端从不连接

[英]socket.io server keeps getting connection event but client side never connects

I have the following code for client side in a node project我在节点项目中有以下客户端代码

const openSocket = require('socket.io-client');

const socket = openSocket('http://localhost:2345');

console.log(socket.connected,socket.id)

socket.on('connect', function () { console.log('connect') });
socket.on('event', function (data) { console.log('event') });
socket.on('error', function (error) { console.log('error') });
socket.on('disconnect', function () { console.log('disconnect') });
socket.on('connection', (socket) => { console.log('connection') })
socket.on('fdaTrigger', (data) => { console.log('fdaTrigger') })

On the server side, I have socket.io running on port 2345在服务器端,我在端口 2345 上运行 socket.io

const io = require('socket.io')(server, {
  perMessageDeflate: false,
  pingInterval: 10000,
  pingTimeout: 5000,
});
var debug = require('debug')('socket.io');
var assetCounter = -1;
io.on('connection', function (socket) {
  assetCounter = -1;
  debug('Started');
  console.log('Got a connection', socket.connected, socket.id);
})

The connection event is fired every few seconds on server but my client refuses to connect.服务器上每隔几秒就会触发一次连接事件,但我的客户端拒绝连接。 When I stop running the client code, the connections stop, so it's connecting but client side does not connect.当我停止运行客户端代码时,连接停止,所以它正在连接但客户端没有连接。 Any insight would be appreciated.任何见解将不胜感激。

Try Below Code试试下面的代码

Client Side客户端

const openSocket = require('socket.io-client');
const socket = openSocket('http://localhost:2345', {transports: ['websocket']});
setTimeout(() => {
  console.log(socket.connected,socket.id)
}, 100)
socket.on('connect', function () { console.log('connect') });
socket.on('event', function (data) { console.log('event') });
socket.on('error', function (error) { console.log('error') });
socket.on('disconnect', function () { console.log('disconnect') });
socket.on('connection', (socket) => { console.log('connection') })
socket.on('fdaTrigger', (data) => { console.log('fdaTrigger') })

Server Side服务器端

const server = require("http").createServer(app);
const io = require('socket.io')(server, {
   perMessageDeflate: false,
   pingInterval: 10000,
   pingTimeout: 5000,
});
var debug = require('debug')('socket.io');
var assetCounter = -1;
io.on('connection', function (socket) {
   assetCounter = -1;
   debug('Started');
   console.log('Got a connection', socket.connected, socket.id);
})
const port = 2345;
server.listen(port, () => console.log(`Listening on port ${port}`));

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM