基于 mqtt 的在线聊天系统

发布于 2022-05-11 13:14 阅读 1125

一直以来都想给文章加个评论功能,这几天下定决心做这个事。

传统的评论功能也就那样,这次我想以聊天室的形式做,每篇文章都是一个聊天室,article_idroom_id,一个room_id就是一个topic,用户订阅这个topic,就可以实时收到信息,当然,用户也可以向这个topic发布信息

页面右下角有一个按钮,点击后可以看到历史消息和新消息(如果有的话),如果想发言,填写手机号,验证码登陆即可(登陆,注册合二为一)

前端

UI组件

需要找一个好看的UI组件,最好是Vue的,因为React不熟悉😂

经过一番查找,发现 vue-beautiful-chat 不错,就用它了

经过使用发现,他的消息格式和当前用户的逻辑不太符合预期,就改了一下,现在已发布到NPM,方便下载 @chudaozhe/vue-beautiful-chat

A library for the MQTT protocol

mqttjs/MQTT.js

yarn add mqtt

后端

mqtt broker选择

mqtt是一种消息协议,要使用得选一个实现了这个协议的broker

  • RabbitMQ + MQTT插件

详见:RabbitMQ插件之MQTT

  • Mosquitto

详见:mqtt 轻量级 broker —— mosquitto

本次选择了:RabbitMQ + MQTT插件

A library for the MQTT protocol

php-mqtt/client

composer require php-mqtt/client

广而告之,我的新作品《语音助手》上架Google Play了,欢迎下载体验