Javascript Pusher.com-如何使用频道

Javascript Pusher.com-如何使用频道,javascript,pusher,Javascript,Pusher,我正在开发一个web应用程序,用户可以在其中相互连接和聊天。因此,每个聊天室都有两个用户。我有一些关于Pusher API的一般性问题,() 第一个问题。Pusher让你有20个免费的并发连接——这是否意味着我可以同时进行10次聊天?(每次聊天在两个客户端之间进行。) 第二个问题。我应该如何构建我的频道?每个聊天应该有一个频道吗?(如果有10次聊天,那么有10个频道。)最好的方式是什么 这是否意味着我可以同时进行10次聊天 是的,根据他们的支持论坛帖子 我应该如何构建我的频道?每个频道应该有一个

我正在开发一个web应用程序,用户可以在其中相互连接和聊天。因此,每个聊天室都有两个用户。我有一些关于Pusher API的一般性问题,()

第一个问题。Pusher让你有20个免费的并发连接——这是否意味着我可以同时进行10次聊天?(每次聊天在两个客户端之间进行。)

第二个问题。我应该如何构建我的频道?每个聊天应该有一个频道吗?(如果有10次聊天,那么有10个频道。)最好的方式是什么

这是否意味着我可以同时进行10次聊天

是的,根据他们的支持论坛帖子

我应该如何构建我的频道?每个频道应该有一个频道吗 聊天

在最基本的设置中,每个聊天都有一个频道。但在大多数情况下,还有其他通道用于传达其他用户和其他功能的存在。一个好的开始是他们的工作

这是否意味着我可以同时进行10次聊天

实际上,你可以拥有更多。如果一个人只能和一个人说话,你将有10条,但是你会受到计划中消息数量的限制

我应该如何构建我的频道?每个频道应该有一个频道吗 聊天

这取决于你是否关心知道:谁一直在线,以及你是否想减少Pusher为优化你的计划而花费的状态信息数量

选项1:

每个用户订阅一个以他的名字命名的频道,并收听其事件

user1将订阅presence-user1频道,并绑定到此频道上的*message_received*事件:

var channel = pusher.subscribe('user1');

channel.bind('message_received', function(message){ 
    console.log('Message received : ');
    console.log(message);
});
当用户1想要联系用户2时,他们只需触发一个*message_received*并将消息和一些元数据传递给它:

var channel2 = pusher.subscribe('user2');

channel2.trigger('message_received',{
    message:'hey', 
    sender:'user1',
    sent_on:helpers.date() 
});
有非常好的文档和非常整洁的api

因为我们在这里使用的是状态通道,所以您也可以获得您关心的用户的状态信息

[编辑]请注意,通过这种方式,所有订阅user1频道的用户都会收到有关在其频道上发送的消息的通知,这是一种次优方式!更好的方法是在两个用户之间创建频道。有很多方法可以设计你的应用程序,但我认为前面的代码应该给你一个基本的想法

选项2:

创建一个“全部显示”房间。每个用户都连接到其中,然后通过“名称空间事件”发送私人消息,因此,例如,user1将绑定到user1:message\u在presence\u all通道上收到。这种方法的问题是开销,但是如果您不希望出现大量的通信量,那么可以使用这种方法,因为它更直接地编写代码

或者创建一种混合方法,一种用于显示,另一种用于交换消息。你应该检查一下[https://pusher.tenderapp.com/kb/accountsbillingplanspricing/how-is-my-message-count-calculated][这位]推动者详细解释了他们如何为信息定价

我希望这有帮助