为skynet移植一个lua-websocke库

本文档介绍了为skynet移植lua-websocket库的过程,包括握手流程、消息交互和事件处理,并提供了使用方法和下载链接。
摘要由CSDN通过智能技术生成

简介

目前大部分游戏、移动互联网、H5客户端主要由JavaScript、Lua、C#、C++等语言进行逻辑开发, 其主要通讯方案便是基于HTTP协议的接口请求与Websocket的推送方案.

起因

skynet内部实现了一套同步非阻塞socket库, 并且提供了TCP通讯方案进行数据流分割. 所谓的TCP数据流分割. 就是根据一定方式读取数据的一种流程.

最为常见的数据分割方案应该是: 2字节头部 + 数据载荷. 另一种通用方案是将头部扩展为4字节, 这样在头部信息中可以包含协议版本或者消息类型还可以进行平滑的进行协议升级扩展.

这些方案一般用于定制C/S网络协议. 绝大多数场景中并没有必须使用到这个场景, 且维护一套这样的协议也是需要占用开发周期的.本人也使用过国内的开发者基于skynet编写的websockket开发库. 就使用上来说效果不是很理想, 且期间遇到的一系列问题也需要自己实际定制化后才能解决.

刚好近期正在为自己开发的Lua Web框架编写Websocket使用教程, 那么干脆趁这个机会将它实现的Websocket协议库也移植到skynet上去.

编写完成后, 我将它随意的命名为: skynet-lua-websocket.

开始移植工作

1. 握手流程

skynet要使用Websocket协议进行通讯需要实现HTTP/1.1版本中101响应方法. skyent.httpd库可以完成HTTP协议的解析工作, 但我并没有使用到它.

究其原因是因为websocket实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值