`
yjl49
  • 浏览: 113760 次
社区版块
存档分类
最新评论

Erlang 聊天室程序(三) 数据交换格式---json的decode

阅读更多

霸哥的blog中提到过Erlang服务器在通信中与客户端的数据交换方式:yufeng

为了简单起见这个聊天室程序采用json,要使用到rfc4627 这个库

先定义一个Message类:

 

再定义一个JSON的工具类:

 

 

再修改SOCKET 发送部分代码:

 

 

测试下发送后服务器端接收到的数据:

 

 

服务器端新建一个模块util_MessageParas,将收到的json数据转成内部可识的message:

 


做下测试:

 

 


OK,收到的数据可以正常地解析为message了。

注:

在此处只需要将json数据的外层转换为message消息。message消息针对不同的类型和作用会有不同的json内容,所以内层数据应该在具体的消息处理部分再调用相应的paras处理。

 

 

 

 

分享到:
评论

相关推荐

    erlang聊天室源码

    **Erlang聊天室源码解析** Erlang是一种面向并发的编程语言,因其在分布式系统和高可用性服务中的出色表现,常被用于构建消息队列如RabbitMQ这样的项目。本篇将深入探讨一个基于Erlang实现的简单聊天室源码,帮助...

    一个我自己学习Erlang的聊天室服务器及客户端代码

    2. JSON或XML数据格式:为了与Erlang服务器进行数据交换,客户端可能使用JSON或XML作为数据序列化格式,这两种格式跨语言兼容性好,易于解析和生成。 3. 多线程:Java客户端可能采用多线程技术,一个线程用于接收...

    erlang 聊天室源码

    Erlang是一种面向并发的、函数式编程语言,特别适合构建高可用性和容错性的分布式系统,如聊天室。在本项目中,我们看到"erlang 聊天室源码"是一个初学者级别的实践项目,开发者花费了两周时间完成,并且在设计上受...

    erlang使用post方式发送json数据

    学习erlang的时候尝试编写的小例子,使用post方式发送json数据来进行http请求,希望能帮到大家~

    erlang json rfc4627

    1. **源代码文件**:通常以`.erl`扩展名,这些文件实现了JSON相关的函数,如`decode/1`用于解析JSON字符串,`encode/1`用于将Erlang数据结构转换成JSON格式。 2. **测试用例**:可能有`.eunit`或`.test`文件,用于...

    erlang 聊天室

    在本文中,我们将深入探讨如何使用Erlang构建一个简易的聊天室,主要涉及的关键技术是gen_tcp和gen_server。Erlang是一种并发性极强、面向进程的编程语言,特别适合于构建高可用性和可扩展性的分布式系统,如聊天室...

    erlang-sd_notify-1.0-2.el7.x86_64.rpm

    erlang-sd_notify-1.0-2.el7.x86_64.rpm

    esl-erlang_16.b.3-2~centos~6_amd64.rpm

    esl-erlang_16.b.3-2~centos~6_amd64.rpm

    erlang-erts-19.3.6.4-1.el7.x86_64.rpm

    erlang-erts-19.3.6.4-1.el7.x86_64.rpm

    esl-erlang-24.2.1-1-centos-7-amd64.rpm

    esl-erlang_24.2.1-1_centos_7_amd64.rpm

    erlang-crypto-19.3.6.4-1.el7.x86_64.rpm

    erlang-crypto-19.3.6.4-1.el7.x86_64.rpm

    esl-erlang-26.0.2x86-64.zip

    error: /tmp/esl-erlang_26.0.2-1~alinux~3_x86_64.rpm : not an rpm package (or packape manifest): arning: /tmp/rabbitmg-erver 3.12.4-1 all.rpm: Header V4 RSA/SHA512 Signature, key ID 6026dfca: NOKEY ...

    最新版erlang-23.3.4.3-1.el7.x86_64.rpm(CentOS7)

    它提供了一个可靠的消息传递平台,可以确保消息的可靠投递,避免数据丢失,并允许应用程序在处理消息时解耦。 安装这两个组件的过程通常涉及以下步骤: 1. **安装Erlang**: - 首先,确保你的系统已经更新到最新...

    erlang -c语言程序接口.pdf

    为了与Erlang进行通信,我们需要编写一个简单的C程序,该程序能够接收Erlang发送的数据,并返回结果。下面是一个具体的C程序实例: ```c #include "stdafx.h" #include int _tmain(int argc, _TCHAR* argv[]) { ...

    erlang-xmerl-22.3-1.el7.x86_64.rpm 镜像下载

    erlang-xmerl-22.3-1.el7.x86_64.rpm,rabbitMQ安装需要依赖此环境。Erlang 是一种多用途编程语言,主要用于开发并发和分布式系统。它最初是一种专有的编程语言,Ericsson 使用它来开发电话和通信应用程序。

    Erlang程序设计(中文版-完整书签)&Erlang编程指南(中英文版)

    Erlang程序设计(中文版-完整书签)&Erlang编程指南(中英文版)

    erlang-java聊天

    本项目“erlang-java聊天”是一个初级水平的示例,展示了如何利用这两种语言进行交互,实现一个简单的聊天应用程序。这个聊天程序可能包括客户端和服务器端的组件,允许用户通过Erlang或Java环境进行实时通信。 **...

    erlang-19.3.6.4-1.el6.x86_64.rpm

    erlang-19.3.6.4-1.el

    erlang-22.3-1.el7.x86_64.rpm

    "erlang-22.3-1.el7.x86_64.rpm"是一个RPM(Red Hat Package Manager)包,是Linux发行版中常见的软件包管理格式。RPM包包含了安装、升级和卸载Erlang所需的所有元数据和二进制文件,用户可以通过RPM工具方便地进行...

    erlang-jinterface-19.3.6.4-1.el7.x86_64.rpm

    erlang-jinterface-19.3.6.4-1.el7.x86_64.rpm

Global site tag (gtag.js) - Google Analytics