接下来实现设置客户端信息功能,使客户端可以设置自己的名称、性别、年龄、所做省份等信息。我们暂时不管客户端如何实现,先对服务器端代码进行调整。
这里需要做以下几件事:
1.修改client_session中handle_info({tcp,Socket,Data},State) 函数对接收到的消息包的处理,使其能支持“客户端信息设置消息”。
考虑到后面还会有更多种类的消息,在这里添加一个消息路由模块message_router.erl,主要负责验证收到的消息类型和主题,并最终路由到正确的消息处理模块中去。
2.将chat_room中的客户端信息管理代码独立为一个client_manager.erl,负责具体的客户端信息处理。
3.实现将message 中type=set、subject=clientinfo 的消息路由到client_manager中,并实现更新ets表中相应的字段信息,最终回复一个消息,或广播消息给所有在线用户。
代码如下:
client_session.erl
注意:在将原始json转成message后需要替换掉原来的from。
message_router.erl
注:这里只做简单的判断,后面可以考虑使用路由表的方式路由信息。
修改chat_room.erl中涉及到客户端信息操作的部分:
client_manager.erl
注:上面的client_manager.erl代码中并未实现将 #message.content 转为#clientinfo 的过程,等客户端实现后再处理,这里留个尾。
分享到:
相关推荐
erlang 聊天室源代码,初学者项目,花了两周时间完成,其中设计参考的是著名聊天软件rabbitMQ 的部分模块
附有需求文档,设计文档,以及一些说明文档,简单的聊天室功能,适合初学者阅读,是本人学习erlang过程中写的,参照了rabbitMQ的核心模块
里面包含Server端Erlang代码和Client端JAVA代码。编写过程在我博客里。
基于erlang的简易聊天室,主要技术是通过gen_tcp和gen_servere实现的
使用Shell充当客户端,多个聊天频道,支持私聊 队伍聊天 区域聊天; Mysql存储用户账户密码,实现注册登录; 此项目由本人入门Erlang过程中编写,前期了解Erlang这门语言如何使用Socket和进程的调用,以及各种Erlang...
erlang 程序设计 源码 erlang 程序设计 源码 erlang 程序设计 源码erlang 程序设计 源码
erlang -c语言程序接口.pdferlang -c语言程序接erlang -c语言程序接口.pdf口.pdf
erlang程序设计 的相关代码例子程序,比较多了,希望对有需要的童鞋有帮助
书中兼顾了顺序编程、并发编程和分布式编程,重点介绍如何编写并发和分布式的Erlang程序以及如何在多核CPU上自动加速程序,并深入地讨论了开发Erlang应用中至关重要的文件和网络编程、OTP、ETS和DETS等主题。...
使用erlang语言实现连接ElasticSearch服务器的客户端代码
erlang程序设计 erlang入门手册
Erlang程序设计 第2版 Erlang程序设计 第2版Erlang程序设计 第2版
Erlang程序设计(第2版).pdf 高清带目录。 .
Erlang程序设计中文版 完整书签 erlang programming
[Erlang程序设计]源代码,包括了erlang程序设计一书全部实例代码;
erlang程序设计第二版习题答案 ,是我自己写的习题解答,也对照过网上的一些答案,相对来说是更加简洁和符合题意的解答,不过后面几章因为时间问题没有写完,有问题或者意见可以私信找我。
Erlang并发编程,Erlang程序设计,Erlang中文手册。 学习erlang的好资料。 Erlang是一个结构化,动态类型编程语言,内建并行计算支持。最初是由爱立信专门为通信应用设计的,比如控制交换机或者变换协议等,因此...
Erlang程序设计,包含完整目录和全套源码
erlang发明者写的书。erlang/otp一种高可靠性的平台。