1, ​​actor.im​

这个是个国外的项目,项目地址:
​​​https://actor.im/​​​ 项目是服务端和客户端都有的开源项目。
服务端是用scala写的。
Actor Platform is released under AGPL.
但是开源协议是AGPL,如果商业使用可能会有问题。
不然apache 自由。
那为啥还推荐呢,也可以学习里面的设计呢。
数据设计在:
​https://github.com/actorapp/actor-platform/tree/master/actor-server/actor-persist/src/main/resources/sql/migration​​ 里面是数据库的设计。

2,goim

纯Golang实现
支持单个、多个以及广播消息推送
支持单个Key多个订阅者(可限制订阅者最大人数)
心跳支持(应用心跳和tcp、keepalive、http log pulling)
支持安全验证(未授权用户不能订阅)
多协议支持(websocket,tcp,http)
可拓扑的架构(job、logic模块可动态无限扩展)
基于Kafka做异步消息推送
github项目:
​​​https://github.com/Terry-Mao/goim​

项目简介,讲的不错。
​​​https://studygolang.com/articles/5486​