Dav*_*vid 4 events client websocket
我正在编写一个多人国际象棋游戏,并使用Pusher作为websocket服务器部分.
无论如何,如果我有一个用户列表,我选择其中任何一个并挑战它们,我如何向这一个用户发送挑战?我知道我会使用客户端事件,如:
channel.trigger("client-challenge_member1", {some : "data"});
Run Code Online (Sandbox Code Playgroud)
但是我认为这个事件必须已经创建了.在每个成员订阅后,我是否动态创建此事件?可能在:
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.");
});
});
Run Code Online (Sandbox Code Playgroud)
我认为会有一个重载方法trigger
,比如:
channel.trigger(eventName, data, memberID)
Run Code Online (Sandbox Code Playgroud)
但我看不到这样的事情.有任何想法吗?谢谢.
我在我的应用程序上遇到了这个问题.此时,Pusher不提供将事件发送给特定用户的方法.我认为你提到的方法适用于你的情况.对于我的应用程序,我让每个用户订阅一个频道,其用户ID为频道ID,然后我可以通过该频道向单个用户发送消息.
client = new Pusher(PUSHER_API_KEY);
channel = client.subscribe(user_id);
channel.bind('my_event',function(data){
//Do stuff
});
Run Code Online (Sandbox Code Playgroud)
我和推进团队讨论了这种方法,他们向我保证,拥有额外的渠道并没有真正的开销.该new Pusher()
命令是创建新套接字连接的代码,因此您不必担心每个通道的额外套接字或类似的东西.希望这可以帮助.