Pusher.com - 如何使用频道

时间:2013-09-27 13:17:47

标签: javascript pusher

我正在构建一个用户可以相互连接并聊天的Web应用程序。所以每个聊天都有两个用户。我有一些关于Pusher API的一般性问题,(http://pusher.com)。

第一个问题。 Pusher允许你免费提供20个并发连接 - 这是否意味着我可以同时进行10次持续聊天? (每次聊天都在两个客户之间。)

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

2 个答案:

答案 0 :(得分:5)

  

这是否意味着我可以同时进行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);
});

user1 想要联系 user2 时,他们只需要触发* message_received *并将消息和一些元数据传递给它:

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

channel2.trigger('message_received',{
    message:'hey', 
    sender:'user1',
    sent_on:helpers.date() 
});

Pusher有非常好的文档和非常简洁的api the page where they talk about events

由于我们在此处使用展示渠道,您也可以获得有关您关注的用户的展示信息。

[编辑]请注意,通过这种方式,所有订阅了user1频道的用户都会收到有关其频道上发送的消息的通知,这是一种不理想的方式!更好的方法是在每两个用户之间创建通道。有很多方法来构建您的应用程序,但我认为之前的代码应该为您提供一个基本的想法。

选项2:

创建一个房间'在场 - 全部'。每个用户连接到的,然后通过“命名空间事件”发送私人消息,例如,user1将绑定到presence_all通道上的user1:message_received。这种方法的问题在于开销,但是如果你不期望大量的流量,你可以使用这个,因为它更直接的代码。

或者在两者之间创建一种混合方法,仅用于存在,另一种用于交换消息。你应该查看[https://pusher.tenderapp.com/kb/accountsbillingplanspricing/how-is-my-message-count-calculated][this] Pusher详细解释他们如何为他们的消息定价。

我希望这有帮助!

答案 1 :(得分:1)

  

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

是的,根据他们的支持论坛帖子,"How are connections counted?"

  

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

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