先定义消息格式如下:
请求: #message{type="get",subject="clientinfo",content="all"}
响应:#message{type="result",subject="clientinfo",content=[#clientinfo,#clientinfo,.....]}
修改客户端发送请求消息部分:
修改服务器端,给chat_room添加一个获取所有在线用户的方法:
在路由模块根据message.type 和message.subject将请求信息路由到以上方法
chat_room中处理get_member的调用,在里面定义一个本地方法getClient使用client_manager以#clientinfo格式获取在线用户
chat_room.erl:
这里为了方便后面的解析,返回的客户信息需要预先编码为JSONString在Erlang下decode后的格式,所以根据需要在util_setInfoParas.erl中定义了deparaElement/1方法
chat_room处理后会将结果打包成一个Message发送给对应的客户端进程,客户端进程再发送给最终的客户端
再修改客户端JAVA代码,将收到的JSONString转换为Bean对象。这里专门新建一个类GetUserInfo表示接收到的result信息
再修改客户端接收部分的代码,将对应类型的消息解析
测试结果如下:
启动一个客户端,修改其昵称为clientA
再启动一个客户端,修改昵称为clientB
clientB客户端获取当前在线用户(这里只打印昵称)
分享到:
相关推荐
erlang 聊天室源代码,初学者项目,花了两周时间完成,其中设计参考的是著名聊天软件rabbitMQ 的部分模块
附有需求文档,设计文档,以及一些说明文档,简单的聊天室功能,适合初学者阅读,是本人学习erlang过程中写的,参照了rabbitMQ的核心模块
基于erlang的简易聊天室,主要技术是通过gen_tcp和gen_servere实现的
书中兼顾了顺序编程、并发编程和分布式编程,重点介绍如何编写并发和分布式的Erlang程序以及如何在多核CPU上自动加速程序,并深入地讨论了开发Erlang应用中至关重要的文件和网络编程、OTP、ETS和DETS等主题。...
使用Shell充当客户端,多个聊天频道,支持私聊 队伍聊天 区域聊天; Mysql存储用户账户密码,实现注册登录; 此项目由本人入门Erlang过程中编写,前期了解Erlang这门语言如何使用Socket和进程的调用,以及各种Erlang...
erlang 程序设计 源码 erlang 程序设计 源码 erlang 程序设计 源码erlang 程序设计 源码
erlang程序设计 的相关代码例子程序,比较多了,希望对有需要的童鞋有帮助
erlang -c语言程序接口.pdferlang -c语言程序接erlang -c语言程序接口.pdf口.pdf
erlang程序设计 erlang入门手册
Erlang程序设计中文版 完整书签 erlang programming
Erlang程序设计 第2版 Erlang程序设计 第2版Erlang程序设计 第2版
Erlang程序设计(第2版).pdf 高清带目录。 .
[Erlang程序设计]源代码,包括了erlang程序设计一书全部实例代码;
里面包含Server端Erlang代码和Client端JAVA代码。编写过程在我博客里。
erlang程序设计第二版习题答案 ,是我自己写的习题解答,也对照过网上的一些答案,相对来说是更加简洁和符合题意的解答,不过后面几章因为时间问题没有写完,有问题或者意见可以私信找我。
Erlang并发编程,Erlang程序设计,Erlang中文手册。 学习erlang的好资料。 Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此...
erlang发明者写的书。erlang/otp一种高可靠性的平台。
Erlang程序设计,包含完整目录和全套源码