https://github.com/xtaci/chat
pub/sub based chat server
https://github.com/xtaci/chat
Last synced: about 1 year ago
JSON representation
pub/sub based chat server
- Host: GitHub
- URL: https://github.com/xtaci/chat
- Owner: xtaci
- License: mit
- Created: 2015-06-19T08:28:49.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2017-04-27T12:14:06.000Z (about 9 years ago)
- Last Synced: 2025-03-28T12:51:13.315Z (over 1 year ago)
- Language: Go
- Homepage:
- Size: 1.41 MB
- Stars: 28
- Watchers: 7
- Forks: 18
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# chat(聊天)
[](https://travis-ci.org/xtaci/chat)
## 设计理念
EndPoint: 消息收发点(对应到一个玩家的聊天,或者一个联盟聊天)
PubSub: 对任意EndPoint进行发布,订阅
聊天服务器并不关心一个EndPoint对应的是一个玩家,还是一个联盟,只需要一个独立的id(snowflake-id)。
通常在玩家注册的时候,会创建一个EndPoint,创建一个联盟的时候,也会创建一个EndPoint。
玩家登陆后,会订阅到自己的私人EndPoint和所属联盟的EndPoint,以便接受实时聊天消息。
CHAT会保留一定数量的消息在内存中(默认128条),这个消息队列会定期持久化到本地磁盘,以便重启时候加载。
持久化采用boltdb,零配置, 数据存储在 VOLUME /data。
基于PubSub的聊天服务器,优点在于可以通过多个途径**同时**访问到同一个EndPoint, 例如:
1. 游戏内
2. 游戏提供的离线聊天工具
3. 提供给XMPP网关
## 使用
参考测试用例以及chat.proto文件
## 安装
参考Dockerfile