Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将数据发送到特定客户端而不是整个通道_Javascript_Node.js_Publish Subscribe_Faye - Fatal编程技术网

Javascript 将数据发送到特定客户端而不是整个通道

Javascript 将数据发送到特定客户端而不是整个通道,javascript,node.js,publish-subscribe,faye,Javascript,Node.js,Publish Subscribe,Faye,我现在正在玩Faye.js。订阅某个频道后,我希望该特定客户端接收一个与频道中已有的任何人都无关的对象 如何做到这一点 更多详情: 对象是房间中最后20条聊天评论的数组。房间里的任何人都可能已经收到了这个物品,或者是聊天的一部分,所以这些人不需要收到它 提前谢谢。我遇到的唯一方法是生成客户端GUID。当客户端连接时,它通过“公共”通道向其他客户端宣布自己,然后您可以使用GUID直接向该客户端发送消息 例如,从的答案中提取一段代码,生成看起来像UUID的东西 然后,您可以在客户端执行以下操作: v

我现在正在玩Faye.js。订阅某个频道后,我希望该特定客户端接收一个与频道中已有的任何人都无关的对象

如何做到这一点

更多详情: 对象是房间中最后20条聊天评论的数组。房间里的任何人都可能已经收到了这个物品,或者是聊天的一部分,所以这些人不需要收到它


提前谢谢。

我遇到的唯一方法是生成客户端GUID。当客户端连接时,它通过“公共”通道向其他客户端宣布自己,然后您可以使用GUID直接向该客户端发送消息

例如,从的答案中提取一段代码,生成看起来像UUID的东西

然后,您可以在客户端执行以下操作:

var guid = guidGenerator();
client.subscribe('/privChannel_' + guid, onPrivateMessage);
client.subscribe('/pubChannel', onPublicMessage);
client.publish('/announce', { 'myId': guid });

function onPrivateMessage() {
 // do something
};

function onPublicMessage() {
 // do something
};
您的服务器应该始终订阅“/announce”频道,当在该频道中发布任何消息时,它应该存储该id,以便能够识别特定的客户端。然后,服务器可以使用此id发布到只有该客户端应订阅的通道


但是请注意,这对于敏感数据不是一个好主意。其他客户端也可以订阅“/announce”并将GUID用于恶意目的。

感谢您的回复-您有任何与每个客户端使用GUID相关的示例吗?我已经添加了一些文字,希望能为您澄清。