FishChat 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
FishChat 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
FishChat 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 Google Go
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 孔小菜
适用人群 未知
收录时间 2015-05-06

软件简介

FishChat(鱼传——鱼传尺素),是一款纯 golang 编写优秀的即时通讯软件(IM), 它集合了市面上已有产品的优点, 并具备 智能硬件网关管理(学习QQ物联思想, 构思中)。

FishChat Android 客户端见 https://github.com/oikomi/FishChatAndroid (紧张开发中)

系统架构

关键服务器详解

gateway

gateway server主要是接受client请求,进行通用的功能设置,目前这块只做了分配msg_server的功能,后面可根据需要进行扩展

在gateway server的配置文件中最重要的是配置msg_server列表

"MsgServerList"      : [
        "192.168.159.169:19000",
        "192.168.159.169:19001"
    ],

msg_server

msg_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服务

router

router顾名思义是做了msg_server之间的消息转发

manager

manager主要是管理client信息存储、离线消息存储等等,通过它和redis联系

monitor

monitor主要是收集监控各服务器状态信息,目前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配置文件修改配置参数

展开阅读全文

代码

评论

点击加入讨论🔥(1) 发布并加入讨论🔥
暂无内容
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
1 评论
159 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部