Events 推送应用程序客户端事件

Events 推送应用程序客户端事件,events,client,websocket,Events,Client,Websocket,我正在编写一个多人国际象棋游戏,并在websocket服务器部分使用Pusher 无论如何,如果我有一个用户列表,并且我选择了其中的任何一个用户并对其进行质询,那么如何仅向该用户发送质询?我知道我会使用客户端事件,如: channel.trigger("client-challenge_member1", {some : "data"}); 但我想这件事应该已经发生了。那么,我是否在每个成员订阅后动态创建此事件?可能在以下方面: channel.bind("pusher:subscribed_

我正在编写一个多人国际象棋游戏,并在websocket服务器部分使用Pusher

无论如何,如果我有一个用户列表,并且我选择了其中的任何一个用户并对其进行质询,那么如何仅向该用户发送质询?我知道我会使用客户端事件,如:

channel.trigger("client-challenge_member1", {some : "data"});
但我想这件事应该已经发生了。那么,我是否在每个成员订阅后动态创建此事件?可能在以下方面:

channel.bind("pusher:subscribed_completed", function(member) // not sure of correct syntax but...
{
   channel.bind("client-challenge_" + member.memberID, function(data)
   {
      alert(data.Name + " is challenging you.");
   });
});
我认为
触发器会有一个重载方法,比如:

channel.trigger(eventName, data, memberID)

但我看不到这样的东西。有什么想法吗?谢谢。

我在应用程序中遇到了这个问题。此时,Pusher不提供向特定用户发送事件的方法。我认为你提到的方法适合你的情况。对于我的应用程序,我让每个用户使用他们的用户id作为通道id订阅一个通道,然后我可以通过该通道向单个用户发送消息

client = new Pusher(PUSHER_API_KEY);
channel = client.subscribe(user_id);
channel.bind('my_event',function(data){ 
  //Do stuff
}); 

我与pusher团队讨论了这种方法,他们向我保证,增加频道不会带来任何实际开销。
new Pusher()
命令是创建新套接字连接的代码,因此您不必担心每个通道会有额外的套接字或类似的问题。希望这有帮助。

如果你能够考虑另一个服务,就有能力向特定的用户发送消息。p> 从他们的网站:

POST/1.0.0/[API密钥]/users/[user]


我是普什人。正如Braden所说,您可以轻松地为每个用户创建一个频道。这比在事件名称中包含用户id更有效,这意味着您向每个人发送无用消息


这是一个我们希望进一步改进的领域,因此感谢您的反馈。

每个用户的不同频道似乎相当不错。你怎么能改进呢?