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

Erlang 聊天室程序(七) 获取在线用户

 
阅读更多

先定义消息格式如下:

请求: #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聊天室源码

    5. **状态管理模块**:保存聊天室的状态,如在线用户列表、历史记录等,可能采用了Erlang的分布式数据库如Mnesia来存储。 在源码中,你可能会看到Erlang的并发特性如`spawn`和`receive`表达式,它们允许创建和管理...

    erlang 聊天室源码

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

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

    总结,这个项目展示了如何利用Erlang强大的并发和分布式特性构建聊天室服务器,同时利用Java的广泛库和GUI支持创建用户友好的客户端。通过学习这个案例,开发者可以加深对Erlang并发编程和Java网络编程的理解,以及...

    erlang 聊天室

    4. **并发处理**:由于Erlang天生支持并发,所以聊天室可能会创建多个进程来同时处理多个用户的请求。 5. **错误处理**:gen_server的错误处理机制有助于确保系统在出现问题时仍能优雅地运行,例如处理断开的连接或...

    Erlang简易聊天室

    使用Shell充当客户端,多个聊天频道,支持私聊 队伍聊天 区域聊天; Mysql存储用户账户密码,实现注册登录; 此项目由本人入门Erlang过程中编写,前期了解Erlang这门语言如何使用Socket和进程的调用,以及各种Erlang...

    Erlang程序设计(第2版)1

    【Erlang程序设计(第2版)】是由Erlang之父Joe Armstrong撰写的一本经典著作,专注于介绍Erlang编程语言在并发、分布式和容错系统中的应用。本书适用于初学者和有一定经验的Erlang程序员。作者在书中讨论了如何利用...

    erlang -c语言程序接口.pdf

    ### Erlang与C语言程序接口详解 #### 一、引言 在软件开发领域,不同编程语言之间的交互是一项重要的技术。Erlang作为一种专为构建高并发、容错性强的应用程序而设计的语言,在与其他语言(如C语言)的集成方面具有...

    erlang-java聊天

    这个聊天程序可能包括客户端和服务器端的组件,允许用户通过Erlang或Java环境进行实时通信。 **Erlang的特性** Erlang是一种函数式编程语言,以其并发处理和容错能力而闻名。在构建聊天系统时,Erlang的轻量级进程...

    erlang 程序设计 源码

    在深入理解Erlang程序设计的源码之前,我们需要了解Erlang的一些核心概念和特性。 1. **并发性**:Erlang的并发模型基于轻量级进程(Lightweight Processes,LWP),它们类似于操作系统中的线程,但资源消耗小得多...

    erlang server

    4. **状态管理**:用于存储和管理聊天室的状态,比如在线用户列表、聊天历史等。 5. **错误处理**:包含错误处理函数,确保系统遇到问题时能够优雅地恢复或通知。 6. **配置文件**:可能包含服务器端的配置信息,...

    Erlang_CNode用户指

    CNode是Erlang生态系统中的一个重要组件,它允许Erlang虚拟机(VM)与用其他语言(如C)编写的程序进行交互。CNode提供了一种方式,使得开发者可以利用Erlang的并发特性和强大错误处理能力,同时利用C语言的高效性能...

    基于Erlang的gen_tcp聊天室代码,功能完整

    在聊天室应用中,每个用户可能对应一个或多个Erlang进程,用于处理用户的输入和输出,以及与其他用户之间的通信。 **聊天室核心功能** 1. **注册**:用户注册通常涉及存储用户名和密码。在Erlang中,可以使用ETS...

    Erlang游戏程序学习完整PDF手册

    这份"Erlang游戏程序学习完整PDF手册"是一份全面介绍Erlang在游戏开发中应用的学习资料,包含了Erlang的基础知识、并发原理以及在游戏开发中的实践案例。 Erlang语言的设计理念源自于Ericsson公司为解决电信系统中...

    confetti, Erlang配置提供程序/应用程序.zip

    confetti, Erlang配置提供程序/应用程序 纸屑五彩纸屑是你的Erlang应用程序的配置提供程序。基本上是 application:get_env/2 在类固醇上。特性管理控制台可以通过telnet维护部门访问将为你 love在运行时重新加载( ...

    erlang简单聊天练习

    4. **Readme说明**:通常会包含如何编译、运行程序以及如何使用这个聊天应用的指导。这对于初学者了解项目流程和运行环境设置至关重要。 **Erlang的并发特性** Erlang的并发模型基于进程,每个进程都有自己的内存...

    erlang windows 安装程序 otp-win64

    erlang for windows 2025年最新版 otp_win64_27.2.1.exe

    erlang 语言程序设计

    ### Erlang语言程序设计 #### 一、Erlang语言简介与重要性 Erlang是一种功能强大且灵活的编程语言,它最初由爱立信公司开发,旨在为电信系统提供高并发、分布式处理能力。随着时间的发展,Erlang不仅在电信领域...

    编写分布式的Erlang程序:陷阱和对策

    ### 编写分布式的Erlang程序:陷阱和对策 #### 摘要与背景 在探讨编写分布式的Erlang程序时,本篇文章聚焦于Erlang编程语言中的分布式特性,尤其是那些容易忽视的陷阱及其对应的解决方案。Erlang作为一种专为构建...

    erlang编程 Introducing Erlang

    Erlang基于函数式编程范式,这意味着程序由纯函数构成,没有副作用。函数式编程强调数据不可变性和函数的数学属性,使代码更易于理解、测试和并行处理。 ### 2. 并发与轻量级进程 Erlang的一大亮点是其内置的并发...

    Erlang User Reference Manual

    - **标题**:“Erlang User Reference Manual”(Erlang 用户参考手册) - **描述**:“Erlang OTP官方用户手册 开发指南” 这些信息表明本手册是关于Erlang编程语言及其运行时系统Erlang OTP的官方文档。它主要...

Global site tag (gtag.js) - Google Analytics