Некоторые шаги, которые я предпринял, включают
, но вкладка сети дала мне 404, так на моем клиентском (реагирующем) приложении добавлено
изменение клиента
//var socket = io.connect(cfg.urls.socket)
var socket = io.connect(cfg.urls.socket,{
secure: true,
rejectUnauthorized: false,
path: '/s2gio/socket.io'
});
немного лучше, но сервер не отвечает, поэтому на сервере добавлено
модифицирующий сервер
//const io = require('socket.io')(server)
const io = require('socket.io')(server,
{
secure: true,
rejectUnauthorized: false,
path: '/s2gio/socket.io'
});
io.of('/s2gio')
теперь сообщения от клиента отображаются на сервере, но не «излучают» с сервера.
Сравнение файла отладки ssl nginx
2020-03-12T19:12:36.309Z socket.io:socket emitting event ["message",{"lid":"Jutebi","product":"Avacado","done":1,"jsod":"","loc":"produce"}]
2020-03-12T19:12:36.309Z socket.io:socket dispatching an event ["message",{"lid":"Jutebi","product":"Avacado","done":1,"jsod":"","loc":"produce"}]
Это все, что я получаю, прежде чем они оба go вернутся к написанию 2-х и 3-х. Но localhost делает encodes, encoding, writing and sending
2020-03-12T19:12:36.309Z socket.io:socket emitting event ["message",{"lid":"Jutebi","product":"Avacado","done":1,"jsod":"","loc":"produce"}]
2020-03-12T19:12:36.309Z socket.io:socket dispatching an event ["message",{"lid":"Jutebi","product":"Avacado","done":1,"jsod":"","loc":"produce"}]
message: { lid: 'Jutebi',
product: 'Red potatoes',
done: 0,
jsod: '',
loc: 'dairy' }
socket.io-parser encoding packet {"type":2,"data":["message",{"lid":"Jutebi","product":"Red potatoes","done":0,"jsod":"","loc":"dairy"}],"nsp":"/"} +16ms
socket.io-parser encoded {"type":2,"data":["message",{"lid":"Jutebi","product":"Red potatoes","done":0,"jsod":"","loc":"dairy"}],"nsp":"/"} as 2["message",{"lid":"Jutebi","product":"Red potatoes","done":0,"jsod":"","loc":"dairy"}] +0ms
socket.io:client writing packet ["2[\"message\",{\"lid\":\"Jutebi\",\"product\":\"Red potatoes\",\"done\":0,\"jsod\":\"\",\"loc\":\"dairy\"}]"] +15m
engine:socket sending packet "message" (2["message",{"lid":"Jutebi","product":"Red potatoes","done":0,"jsod":"","loc":"dairy"}]) +17ms
engine:ws writing "42["message",{"lid":"Jutebi","product":"Red potatoes","done":0,"jsod":"","loc":"dairy"}]" +19ms
qry.sql: INSERT INTO items SET `lid` = 'Jutebi', `product` = 'Red potatoes', `done` = 0, `jsod` = '', `loc` = 'dairy' ON DUPLICATE KEY UPDATE `lid` = 'Jutebi', `product` = 'Red potatoes', `done` = 0, `jsod` = '', `loc` = 'dairy'
сервер довольно простым
const io = require('socket.io')(server);
io.on('connect', (socket) => {
io.emit('message', 'connected io')
socket.on('switch2room', (room)=>{
console.log('swwwwww')
console.log('switch2room: ', room)
socket.leaveAll()
socket.join(room, ()=>{
console.log('subscribe ', socket.rooms);
io.in(room).emit('message', `inside ${room} party people?`)
})
})
socket.on('message', (message)=>{
console.log('message: ', message)
io.in('/s2gio/'+message.lid).emit('message',message)
if(message.done==-1){
const qry=conn.query('DELETE FROM items WHERE lid=? AND product=?',[message.lid,message.product],()=>{
console.log('qry.sql: ', qry.sql)
})
}else{
const qry = conn.query('INSERT INTO items SET ? ON DUPLICATE KEY UPDATE ?', [message,message], (error,results)=>{
console.log('qry.sql: ', qry.sql)
})
}
})
});
server.listen(cfg.port.socket);
console.log('wss listening on '+cfg.port.socket);
Я также пытался добавить 'namespace' в emit на сервере
io.on('connect', (socket) => {
io.emit('message', '/s2gio/connected io')
...
Любые идеи будут с благодарностью