`
hpyhacking
  • 浏览: 17415 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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的实现跟大家分享一下~

这两天很累,注意休息,继续坚持下去~
0
9
分享到:
评论

相关推荐

    erlang rebar 二进制

    erlang rebar 二进制

    erlang二进制共享对象的存储方式

    erlang二进制共享对象的存储方式的讨论

    PHP扩展模块解包Erlang term二进制数据

    有些同学想把Erlang数据通过term_to_binary函数封包后以二制进形式存入数据库,然后用PHP读取并解包成PHP数组。 为了解决上面的这种应用场合中遇到的问题, 参考peb(Php-Erlang Bridge)扩展写了这个类似erlang:...

    esl-erlang_17.3-1~centos~6_amd64.rpm

    esl-erlang_17.3-1~centos~6_amd64.rpm esl-erlang_17.3-1~centos~6_amd64.rpm

    esl-erlang_17.0-1~centos~6_amd64.rpm

    esl-erlang_17.0-1~centos~6_amd64.rpm

    esl-erlang_21.0-1~centos~7_amd64.rpm

    erlang centos7安装包,安装rabbitmq依赖的安装包,rpm安装包

    binpp::1234:Erlang二进制漂亮打印机

    **Erlang与二进制数据处理** Erlang是一种函数式编程语言,以其在并发、分布式计算和容错领域的强大能力而闻名。在Erlang中,二进制数据是一种重要的数据类型,广泛用于处理网络协议、文件读写、序列化等场景。二...

    球拍位语法:球拍的Erlang样式二进制位串

    在编程领域,尤其是在处理底层数据或通信协议时,二进制位串的处理是一项重要的技能。Erlang语言以其高效处理并发和大量I/O操作而闻名,它提供了一种独特的语法来操作二进制位串,称为“球拍位语法”(Bit Syntax)...

    erlang文献及资料汇总

    erlang位运算与二进制解析 erlang二进制高效编程 erlang异常处理详解 开发经验: 面对软件错误构建可靠的分布式系统 编写分布式的 Erlang 程序:陷阱和对策 硝烟中的Erlang 深入底层: erlang VM基于多核处理器的...

    谈谈erlang网络环境下的几种数据流转形式(PPT)

    2. **Erlang Term Format (ETF)**:ETF是Erlang中数据的标准二进制表示形式,允许高效地在网络中传输。它包含了各种Erlang数据类型,如原子、列表、元组等。 3. **Port和Driver**:Erlang的Port机制允许与C或其他...

    bstr:Erlang库将二进制文件用作字符串

    Erlang库将二进制文件用作字符串。 要求 在以下OTP版本中进行了测试: 17.1 17.0 R16B03-1 R16B03 R16B02 R16B01 安装 要初始化项目,请运行make bootstrap 。 要编译模块,您只需运行make 。 要运行单元...

    erlang port driver test

    2. **数据传输**:Erlang 进程通过端口发送二进制数据到外部程序,外部程序处理后返回结果,数据通过端口返回到 Erlang 进程。Erlang 使用 `port_command/2` 发送数据,`port_recv/2` 接收数据。 3. **同步通信**:...

    erlang_版本24.3.4.4

    5. **安装**:最后,使用`make install`将编译好的Erlang二进制文件安装到你的系统路径。在某些系统上,你可能需要管理员权限执行此操作。 Erlang的主要特性包括: - **并发性**:Erlang的进程模型是轻量级的,...

    esl-erlang_23.2-1~centos~8_amd64.rpm

    esl-erlang_23.2-1~centos~8_amd64.rpm

    esl-erlang_19.0~centos~6_amd64.rpm

    esl-erlang_19.0~centos~6_amd64.rpm

    php实现与erlang的二进制通讯实例解析

    一般来说网络通讯常用的方式有2种:文本通讯和二进制通讯。php与erlang之间实现文本通讯比较简单,这里就不做讨论,本文主要讨论的是php与erlang实现二进制通讯的实现方法。实现步骤如下: erlang端代码: 复制代码 ...

    gb_merkle_trees:Erlang的通用平衡二进制Merkle树

    gb_merkle_trees:Erlang的通用平衡二进制Merkle树

    esl-erlang_23.0.3-1~centos~7_amd64.rpm

    linux环境 erlang rpm包 esl-erlang_23.0.3-1~centos~7_amd64.rpm

    JSON和byte[]

    标签中的“源码”可能是指涉及JSON解析器或处理`byte[]`的相关代码实现,而“工具”可能指的是用来操作和转换JSON或处理二进制数据的工具或库。 在给定的压缩包文件中,有两个文件:`kvs6.erl`和`tsTservTW2.py`。`...

    erlang压缩包.rar

    其数据类型包括原子(atom)、整数、浮点数、字符串、列表和二进制数据。Erlang使用模式匹配来解构数据结构,并通过消息传递实现进程间的通信。 学习Erlang的关键概念包括: - **模式匹配**:在函数定义中,可以...

Global site tag (gtag.js) - Google Analytics