使用 socket.io 和空消息队列向特定客户端发送消息 [英] Sending message to specific client with socket.io and empty message queue

查看:35
本文介绍了使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆