微信小程序websocket实现一对一聊天功能

微信小程序websocket实现一对一聊天功能

在之前的文章小程序可以做聊天功能吗?中我们给大家解答了在微信小程序中是可以做聊天功能的,主要还是看应用场景,只要应用场景符合,就可以审核通过。

我们建议在微信小程序中直接使用GoEasy提供的websocket集成服务来完成。

现在GoEasy提供了基于websocket的一对一聊天和群聊Demo,如果你需要微信小程序websocket的demo演示代码,可以看这里:
https://gitee.com/goeasy-io/GoEasyDemo-wxapp-IM-Chat

我们今天还是来探讨一下在微信小程序中如何实现一对一的聊天功能。

在GoEasy中有channel这一概念,我们要实现一对一的聊天功能,就得依靠灵活定义channel来完成。

什么是channel:

在电视广播中,高频影像信号和伴音信号占有一定宽度的频带,叫频道。有了不同的频道,就可以将资讯分门别类地输送给不同的目标受众。GoEasy的频道(channel)也是类似的概念。

channel如何使用:

上面我们解释了channel的定义,接下来看看如何使用channel。在GoEasy中,只有发送方和接收方使用了相同的channel,才能成功完成消息的收发行为。另外目前GoEasy对channel的数量暂时没有做任何限制。

在实际开发过程中,我们可以根据不同的业务场景来灵活定义channel。

实例一:只对user A发送消息,user B不接收

例如您有user A, user B,如果您希望推送一条消息用户A收到,不希望用户B收到,那您只需要进行2个步骤:

1. 用户A的页面订阅channel_user_a,用户B的页面订阅channel_user_b。

2. 服务器只需要往channel_user_a上推送消息就可以了,推送后,就只有user A能收到,user B则无法接收。

具体实现中,可以将用户的id或者uuid来作为channel。

实例二:user A和user B一对一聊天

经过上面的实例一,我们已经基本掌握了channel的用法。具体到实例二的场景,我们只需要在用户A和用户B的页面上同时订阅专属于他们的channel即可,
比如该channel可设定为channel_user_a_b。

然后user A和user B分别往channel_user_a_b上发送消息就可以了,该channel上的消息只有user A和user B才能收到,这也就实现了一对一聊天功能。

具体实现中,可以将用户的id或者uuid来作为唯一性标识写入channel中。

以上就是微信小程序一对一聊天功能的基本实现思路。

目前GoEasy提供完整的websocket前后端解决方案,简单的几行代码集成,即可快速搭建微信小程序websocket服务。

Comments are closed.