您好我正在使用pubnub制作聊天应用,需要一些指导。我已经浏览了所有教程,并使用android SDK了解了发布/订阅/多索引/发送推送通知/在线API的概念,并制作了示例公共聊天应用程序。
将我的应用视为客户服务。我将在一端拥有多个用户,他们可以选择在另一端与我们的员工进行对话。客户只能与我们的员工(不是彼此之间)聊天,只有客户才能发起对话。我如何构建这个?
我曾想过在员工和客户之间定义每个可能的渠道(在每次注册时)使用他们的令牌(或一些UUID)作为渠道名称,cust1_empl1,cust1_empl2。假设我有5个员工,那么每个客户拥有的渠道将是5个但是对于我们这边,我们需要的渠道和用户一样多,这是不实际的。(根据我的估计,3000个用户/员工)
如果用户1与employee1进行对话
1)我是否必须首先定义cust1_empl1并让它们都发布并订阅该频道?
2)有没有办法在飞行中制作这些?当cust1开始聊天时,我总是可以创建一个频道并发布,订阅它,但是另一端的主管如何知道该用户想要聊天并创建了一个新频道,因为他必须被提示加入频道如果它是在飞行中制作的。
3)我是否必须使用某种公共频道在设备之间发送信息,以便通知他们正在进行的频道?
提前致谢
答案 0 :(得分:4)
Varun的,
您可以让客户和您的代理订阅其个人频道(例如channel-customer1
)。除此之外,如果代理可以进行对话,代理可以订阅全球渠道(例如available_agents
)。
作为用户,当我想与代理商发起聊天时,我会在全球频道上发布消息
PUBNUB.publish({
channel: 'available_agents',
message: {"customerID":"customer1", "personalChannel": "channel-customer1"}
});
订阅该频道的所有可用座席都会收到此请求,并可以通过我的个人信息回复我。在消息中标识的频道。要关闭循环,我可以在available-agents
频道上发送另一条消息,宣布我已成功开始与代理进行对话。当客户与代理商之间的配对完成后,您可以创建一个动态渠道,让他们在" customer1-agent1-chat
"或者只是让双方互相发布个人频道。例如,
channel-agent1
channel-customer1
所以回答你的问题:
需要考虑的其他事项:
available-agents
渠道。