使用 socket.io 和空消息队列向特定客户端发送消息 [英] Sending message to specific client with socket.io and empty message queue
本文介绍了使用 socket.io 和空消息队列向特定客户端发送消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我对 socket.io 快要疯了!文档太糟糕了,根本不是真的.
I´m going crazy with socket.io! Documentation is so bad it's simply not true.
我想通过 socket.io 向特定客户端发送反馈
I want to send a feedback to specific client over socket.io
我的服务器端是这样的:
My server side looks like this:
app.get('/upload', requiresLogin, function(request, response) {
response.render('upload/index.jade');
io.sockets.on('connection', function (socket) {
console.log('SOCKET ID ' + socket.id);
io.sockets.socket(socket.id).emit('new', 'hello');
});
});
客户端看起来像这样:
$(document).ready(function() {
var socket = io.connect('http://localhost:80/socket.io/socket.io.js');
socket.on('new', function (data) {
console.log(socket.id);
console.log(data);
//$('#state').html(data.status);
});
});
但是客户端什么都不做.我几乎尝试了所有方法.有人可以告诉我我做错了什么,请!:(
but the client does simply nothing. I have tried nearly everything. Can someone tell me what I am doing wrong, please! :(
推荐答案
向特定客户端发送消息,将连接到服务器的每个客户端保存在一个对象中.
to send a message to a specific client save every one that connects to the server in an Object.
var socketio = require('socket.io');
var clients = {};
var io = socketio.listen(app);
io.sockets.on('connection', function (socket) {
clients[socket.id] = socket;
});
然后您可以稍后执行以下操作:
then you can later do something like this:
var socket = clients[sId];
socket.emit('show', {});
这篇关于使用 socket.io 和空消息队列向特定客户端发送消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文