发送数据到特定的客户端,而不是整个频道

我正在玩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发布到一个频道,只有这个客户端应该订阅。

但请注意,这不是敏感数据的好主意。 其他客户也可以订阅“/宣布”,并出于恶意目的而将这些指导用于农场。