【问题标题】:Multiple Private Chat channels in Pubnub AndroidPubnub Android 中的多个私人聊天频道
【发布时间】:2015-07-26 05:51:59
【问题描述】:

您好,我正在使用 pubnub 制作聊天应用程序,需要一些指导。我已经阅读了所有教程并理解了使用 android SDK 发布/订阅/多索引/发送推送通知/出席 API 的概念,并制作了示例公共聊天应用程序。

将我的应用视为客户服务。我将在一端有多个用户,他们可以选择在另一端与我们的员工进行对话。客户只能与我们的员工聊天(不能互相聊天),并且只有客户可以发起对话。我该如何构建这个?

我曾考虑使用他们的令牌(或某些 UUID)组合为通道名称、cust1_empl1、cust1_empl2 来定义员工和客户之间的每个可能的通道(在每次注册时)。假设我有 5 名员工,那么每个客户拥有的渠道将是 5 个,但对于我们而言,我们将需要与用户一样多的渠道,这是不切实际的。(根据我的估计,例如 3000 名用户/员工)

如果用户 1 与员工 1 交谈

1) 我是否必须先定义 cust1_empl1 并让它们都发布和订阅频道?

2) 有没有办法即时制作这些?当 cust1 开始聊天时,我总是可以创建一个频道并发布、订阅它,但是另一端的主管怎么知道这个用户想要聊天并创建了一个新频道,因为必须提示他加入频道如果它是即时制作的。

3) 我是否必须使用某种公共频道在设备之间发送信息以及通知他们正在制作的频道?

提前致谢

【问题讨论】:

    标签: android chat real-time publish-subscribe pubnub


    【解决方案1】:

    瓦伦,

    您可以先让客户和您的代理订阅他们的个人频道(例如channel-customer1)。除此之外,如果代理可以进行对话,他们可以订阅一个全局频道(例如available_agents)。

    作为用户,当我想与代理发起聊天时,我会在全局频道上发布消息

    PUBNUB.publish({
        channel: 'available_agents',
        message: {"customerID":"customer1", "personalChannel": "channel-customer1"}
    });
    

    订阅该频道的所有可用代理都会收到此请求,并可以在消息中标识的我的“个人”频道上回复我。要结束循环,我可以在available-agents 频道上发送另一条消息,宣布我已成功开始与代理的对话。当客户和代理之间的配对完成后,您可以创建一个动态频道供他们在“customer1-agent1-chat”上聊天,或者让双方在彼此的个人频道上发布。例如,

    • 当我想向代理发送消息时,我在channel-agent1 上发布
    • 当代理想给我发消息时,他发布在channel-customer1

    所以回答你的问题:

    1. 您不必从一开始就“创建”cust1_empl1 通道。只有在将客户和员工配对时才这样做。
    2. 您可以通过在所有可用代理都订阅的全球频道上发送通知您的对话请求来做到这一点。您还将让他们知道他们可以通过哪个频道与您联系以开始聊天。
    3. 如果您使用您的服务器作为中间人来创建动态频道,您的服务器可以在客户和员工的私人频道上发布,让他们知道他们必须为新对话订阅额外的频道

    其他需要考虑的事项:

    1. 出于安全原因,我建议您查看PubNub Access Manager。例如,您可以锁定available-agents 频道,仅向客户提供写入权限,向员工(代理)提供读取权限。
    2. 管理动态创建的频道并让客户或员工订阅的另一种方法是使用Channel Groups。使用频道组,您可以让每个用户订阅一个个人频道组。您可以通过向频道组添加/删除单个频道来管理对单个频道的订阅。

    【讨论】:

    • 非常感谢。可悲的是,我的代表还不够高,无法显示 +1 投票:D
    • 瓦伦 - 你会到达那里。对你的问题投赞成票给了你一点动力,因为这是一个很好的问题:)
    • @Girish,嗨,如何为一对一聊天创建频道?
    猜你喜欢
    • 1970-01-01
    • 2016-02-24
    • 2021-07-05
    • 1970-01-01
    • 2014-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多