Я рассмотрел несколько ответов здесь, но я думаю, что они относятся к более старым версиям socket.io, поскольку их решения не сработали для меня. Я получаю данные обратно в браузере с, испускающий одиночный клиентский сокет io 1.3.2
io.emit('update', data)
но это излучающее для всех клиентов так же данные появляются в нескольких окнах, когда я иду в тот же URL. Должен ли я хранить идентификатор клиента где-то после соединения, или я могу просто вернуть его перед выпуском? Пожалуйста, будьте конкретны. Я попробовал несколько других решений от SO, но у меня много идентификаторов ReferenceError не определено или сокетов вместо сокета.
сервер и подключение:
var app = express();
var server = require('http').createServer(app)
var io = require('socket.io')(server)
app.get('/aPath', function (req, res, next) {
res.writeHead(200)
var data = {
"val1": req.query.val1,
"val2": req.query.val2,
"val3": req.query.val3,
"val4": req.query.val4,
"val5": req.query.val5,
"val6": req.query.val6,
}
/*console.log(io.sockets.id)*/
//io.to(io.sockets.id).emit('update', data)
//io.sockets.socket(id).emit('update', data)
io.emit('update', data)
res.end("OK")
})
io.on('connection', function (socket) {
console.log('websocket user connected')
});
Вы должны каким-то образом сопоставить спокойного клиента с клиентом сокета. Как только вы это сделаете, вы можете исправить свои данные. –
Я не уверен, что понимаю, что вы имеете в виду, «коррелировать спокойного клиента с клиентом сокета». Можете ли вы объяснить дальше? – user137717
Прочтите мой ответ. в основном убедитесь, что вы знаете, кому клиент третьей стороны отправляет информацию. если вы 1000 активных пользователей, вы хотите отправить их правильному пользователю, поэтому вам необходимо сопоставить правильного пользователя сокета с ответом от стороннего клиента. –