分布式可伸缩IM服务器FishChat.zip
FishChat(鱼传——鱼传尺素),是一款纯 golang 编写优秀的即时通讯软件(IM), 它集合了市面上已有产品的优点, 并具备 智能硬件网关管理(学习QQ物联思想, 构思中)。FishChat Android 客户端见 https://github.com/oikomi/FishChatAndroid (紧张开发中)系统架构关键服务器详解gatewaygateway server主要是接受client请求,进行通用的功能设置,目前这块只做了分配msg_server的功能,后面可根据需要进行扩展在gateway server的配置文件中最重要的是配置msg_server列表"MsgServerList" : [ "192.168.159.169:19000", "192.168.159.169:19001" ],msg_servermsg_server是消息的主体,维护着客户端连接和keeplive,同时要注意router、manager和monitor都订阅了msg_server的channel SYSCTRL_CLIENT_STATUS = "/sysctrl/client-status" SYSCTRL_TOPIC_STATUS = "/sysctrl/topic-status" SYSCTRL_TOPIC_SYNC = "/sysctrl/topic-sync" SYSCTRL_SEND = "/sysctrl/send" SYSCTRL_MONITOR = "/sysctrl/monitor"这些channel保证了msg_server在事件触发时会广播通知后面的router、manager和monitor服务routerrouter顾名思义是做了msg_server之间的消息转发managermanager主要是管理client信息存储、离线消息存储等等,通过它和redis联系monitormonitor主要是收集监控各服务器状态信息,目前monitor是可选项,可按需要启动它部署FishChatServer采用分布式可伸缩部署方式。如果没有多机条件,可以单机部署:建议: 单机测试部署gateway一台msg_server两台router一台manager一台monitor一台./gateway./msg_server -conf_file=msg_server.19001.json./msg_server -conf_file=msg_server.19000.json./router./manager./monitor按上面的默认启动方式,查看系统的监听端口如下当然你可以修改各文件夹下面的json配置文件修改配置参数 标签:FishChat
- 1
- 2
- 3
- 4
- 5
- 6
- 20
- 粉丝: 413
- 资源: 1万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助