【聊天室 API】集群式摸鱼派聊天室 Beta 上线啦!

fishpi-77bd3ddd.png

很激动地告诉大家:摸鱼派的聊天室已经作为独立节点进行集群化运行啦!

和之前的聊天室有什么区别?

从用户角度来看,功能和之前是一致的。

无论你连接到哪个节点,所有的数据都是实时同步的(目前不支持手动选择节点,预计15天内会推出此功能,你可以根据你的地域选择更近的节点为你提供服务),带给你最直接的感受就是流畅,一直都很流畅。

我们将聊天室的 WebSocket 与服务端分离开来,可以实现灵活添加多个节点进行集群负载均衡。这意味着聊天室能承载更多成员,并且响应速度相较之前更快、更稳定。

我们的首个测试节点采用了一台独立云主机,它拥有可以稳定承载 1000 人的带宽和硬件性能,足够支撑我们对摸鱼派下个里程碑的期望。

目前聊天室节点

北京:300人

上海:300人(感谢 @Yui 贡献的子节点)

广州:300人(感谢 @8888 贡献的子节点)

总同时在线承载量:900人

节点仍在扩充中,如果你对成为节点有兴趣,请翻到本文最下方部分。

摸鱼派的客户端/插件开发者请注意

如果你的应用里有摸鱼派聊天室,请在 2025年3月1日之前 去除现有的 WebSocket 地址(我们后续会删除现有聊天室接口),按照下方文档的指示使用摸鱼派的聊天室子节点:

第一步,向摸鱼派请求获取一个子节点的 WebSocket 地址:

GET https://fishpi.cn/chat-room/node/get

返回 JSON 中的 data 就是你要连接的地址,我们将 ApiKey 同样帮你渲染好加入到 wss 连接的 URL 中了,直接使用即可。

返回内容:

Key 说明 示例
msg 显示用户当前所在的区服中文名称 上海一区
code 状态码,0为获取成功 0
data 自动分配的 WebSocket 地址
请取用该地址连接到聊天室频道
wss://x.x.x.x:10832?apiKey=xxx
avaliable JSONArray 格式,列出所有可用的节点
具体解释请看示例
[
  {
    "node": "节点 WSS 地址",
    "name": "节点中文名称",
    "online": "节点当前在线人数"
    "weight": 该节点权重(数值越高权重越高,权重可以理解为比例,按人数比例分配)
  },
  ...
]
apiKey 自动生成的 ApiKey,用于在手动选择节点时
和 avaliable 中的 node 拼接,以连接到自定义
节点的WebSocket服务器
ABCD1234....

第二步,使用 JS 请求连接摸鱼派新版子节点示例如下:

    // Init [ChatRoom] channel
    $.ajax({
        url: Label.servePath + '/chat-room/node/get',
        type: 'GET',
        cache: false,
        success: function (result) {
            new WebSocket(result.data);
        }
    });

就这么简单,完成了。相较于之前的连接方式,只是在连接之前加了一步,获取子节点的 WebSocket 地址。服务器会根据节点的负载自动为你分配一个合适的子节点地址,data 每次返回的内容是唯一的 URL ,不会同时出现多个 URL 。

第三步,请注意处理如下内容:

  1. 掉线机制:如果 WebSocket 服务端主动掉线了,请将重连机制也加入 GET https://fishpi.cn/chat-room/node/get 请求,服务端在监测到子节点掉线后,会停止分配此地址,所以每次连接请务必获取最新的聊天室子节点 URL ;
  2. 目前子节点功能处于 Beta 阶段,性能、功能上很有可能存在 Bug ,如你发现问题或有任何建议,欢迎私信我,采纳后有积分奖励;
  3. 子节点服务端的代码完全开源,欢迎参与 PR :https://github.com/FishPiOffical/rhyus

成为子节点

如果你有一台闲置的服务器,并且愿意成为摸鱼派聊天室子节点的一员,欢迎加入我们!

作为子节点,你可以:

  1. 获得额外收入:你的子节点将根据带宽使用量贡献加入到赞赏计划中
  2. 享受技术的乐趣:Rhyus(子节点服务端名称)仍在不停迭代中,你可以参与其中
  3. 特别勋章:你将获得一枚“摸鱼派子节点供应商”勋章

子节点要求:

  1. 服务器配置:CPU ≥ 2核 内存 ≥ 4G 空余硬盘空间 ≥ 1GB
  2. 公网IP、独享带宽(上下对等)≥ 10Mbps 国内主机
  3. 有 Linux 运维的经验,能按照文档部署程序、安装 Nginx 、更换 SSL 证书
  4. 服务器过期时间 ≥ 1年
  5. 我们每三个月会为你更换一次 HTTPS 证书
  6. 服务器及网络质量稳定
  7. 在摸鱼派社区无不良记录,同意签署保密协议,并承担泄密所导致的法律后果

如果你可以达到要求,欢迎向我私信投递申请!