一个快速接入聊天的服务

最近在项目中有个推送和聊天的需求,并且需要在多个项目中使用。找到了网易云信的解决方案后,觉得自己也可以简单的实现一个。于是就开始动手了。

网易云信结构图

在网上找了很多提供接入聊天的应用。比如网易云信、极光推送。这些服务主要提供用户信息、好友关系之类的 api,还有维持长连接。

作为一个公用的服务,每个应用需要申请 appkey 和 appsecret。

写自己的聊天服务

###预期功能:

  • 多应用接入
  • 好友关系
  • 长连接
  • 一对一聊天
  • 多对多聊天
  • 断线重连
  • 发送图片
  • 发送文件
  • 自定义消息格式
  • 客服介入聊天

技术选型

选择开发语言:php or golang,golang 还在学习中,为了快速开发选择比较熟悉的 php,后期尝试用 golang 重构。

选择开发框架:api 部分的框架采用公司内部的框架,长连接部分比较了 workman 和 swoole,最终选择了 swoole。

前端框架:原生 js,没有使用框架。