Erlang天生就是用来处理二进制数据的~
折腾两天了,使用erlang编写最新的HTML5 websocket服务器端,找了很多资料~
由于websocket协议更新非常频繁(感谢Google的大力推动),中文资料跟进不是很多,大多停留在最开始的版本,鲜有人写些新版的协议内容,但多讲握手协议的改变,对数据帧如何编码解码少有涉及。
通过github参考了很多erlang实现的websocket,也是太多没有跟进新版协议,偶然发现一个ruby项目实现的很给力,参考着这份代码与官方发布的协议纠结了两天,终于可以和浏览器相互通信了。
下一步要实现服务器端和浏览器之间的binary转换,让HTML5也能适应我的游戏服务器端,不知道为什么websocket api不能支持binary framing,协议里这么写,Chromium测试后结果也一样,有点郁闷,还要有新的TypedArray。
这是头一次用erlang做些事情,之前都是停留在书本上还有一些练习,通过这次实践,用于对websocket编码解码的代码 20 行不到,而ruby早就超百了~ 真是赞叹erlang对于二进制的处理,简直是天衣无缝~
过几天将WebSocket的最新版协议相关内容以及erlang的实现跟大家分享一下~
这两天很累,注意休息,继续坚持下去~