You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
2.0 KiB
60 lines
2.0 KiB
3 years ago
|
## 目录
|
||
|
- 1、项目说明
|
||
|
- 1.1 goWebSocket
|
||
|
- 1.2 项目体验
|
||
|
- 2、介绍webSocket
|
||
|
- 2.1 webSocket 是什么
|
||
|
- 2.2 webSocket的兼容性
|
||
|
- 2.3 为什么要用webSocket
|
||
|
- 2.4 webSocket建立过程
|
||
|
- 3、如何实现基于webSocket的长连接系统
|
||
|
- 3.1 使用go实现webSocket服务端
|
||
|
- 3.1.1 启动端口监听
|
||
|
- 3.1.2 升级协议
|
||
|
- 3.1.3 客户端连接的管理
|
||
|
- 3.1.4 注册客户端的socket的写的异步处理程序
|
||
|
- 3.1.5 注册客户端的socket的读的异步处理程序
|
||
|
- 3.1.6 接收客户端数据并处理
|
||
|
- 3.1.7 使用路由的方式处理客户端的请求数据
|
||
|
- 3.1.8 防止内存溢出和Goroutine不回收
|
||
|
- 3.2 使用javaScript实现webSocket客户端
|
||
|
- 3.2.1 启动并注册监听程序
|
||
|
- 3.2.2 发送数据
|
||
|
- 3.3 发送消息
|
||
|
- 3.3.1 文本消息
|
||
|
- 3.3.2 图片和语言消息
|
||
|
- 4、goWebSocket 项目
|
||
|
- 4.1 项目说明
|
||
|
- 4.2 项目依赖
|
||
|
- 4.3 项目启动
|
||
|
- 4.4 接口文档
|
||
|
- 4.4.1 HTTP接口文档
|
||
|
- 4.4.1.1 接口说明
|
||
|
- 4.4.1.2 聊天页面
|
||
|
- 4.4.1.3 获取房间用户列表
|
||
|
- 4.4.1.4 查询用户是否在线
|
||
|
- 4.4.1.5 给用户发送消息
|
||
|
- 4.4.1.6 给全员用户发送消息
|
||
|
- 4.4.2 RPC接口文档
|
||
|
- 4.4.2.1 接口说明
|
||
|
- 4.4.2.2 查询用户是否在线
|
||
|
- 4.4.2.3 发送消息
|
||
|
- 4.4.2.4 给指定房间所有用户发送消息
|
||
|
- 4.4.2.5 获取房间内全部用户
|
||
|
- 5、webSocket项目Nginx配置
|
||
|
- 5.1 为什么要配置Nginx
|
||
|
- 5.2 nginx配置
|
||
|
- 5.3 问题处理
|
||
|
- 6、压测
|
||
|
- 6.1 Linux内核优化
|
||
|
- 6.2 压测准备
|
||
|
- 6.3 压测数据
|
||
|
- 7、如何基于webSocket实现一个分布式Im
|
||
|
- 7.1 说明
|
||
|
- 7.2 架构
|
||
|
- 7.3 分布式系统部署
|
||
|
- 8、回顾和反思
|
||
|
- 8.1 在其它系统应用
|
||
|
- 8.2 需要完善、优化
|
||
|
- 8.3 总结
|
||
|
- 9、参考文献
|