本项目是基于firefly和twisted实现的一个聊天服务器。具有功能:
- 群发消息
- 对指定N个用户发送消息
- 离线消息
- 在线人数更新
- 强制关闭房间
- 踢人
本项目适合用于产品中大多数业务都是HTTP请求,只有少部分业务需要用到TCP连接的产品。
聊天室中发言,送礼等请求,一般会涉及很多额外的业务,例如扣费,是否有发言权限等。所以建议这些请求,可以先发HTTP请求到产品原有的WEB服务器,服务器处理完业务逻辑后,通过本项目的HTTP API来发消息到聊天室。
pip install firefly
python startmaster.py
运行客户端:
python tool/client.py 1000 20000 1501147683
其中:
1000是客户端进入的房间的ID
20000是客户端的用户的ID
1501147683是需要获取的离线消息的最小时间戳
发送消息给房间里面的所有用户
发送消息hello
到房间1000
curl 'http://127.0.0.1:1002/dispatch?room_id=1000&msg=hello'
发送消息hello
到房间10000里面的用户20000和用户20001
curl 'http://127.0.0.1:1002/dispatch?room_id=10000&msg=hello&user_id=20000,20001'
关闭房间后,会清除历史消息,并断开房间里面的客户端的连接
curl 'http://127.0.0.1:1002/room/close?room_id=10000'