03 2012 档案

Erlang 聊天室程序(十) 主题房间3 ---创建、关闭和查询
摘要:为了后面的功能,这里先实现主题房间的开启、关闭和查询。这些都是对客户端行为的响应,正常情况下需要管理员权限,由于权限部分还未实现所以这里暂时不考虑。 先定义消息格式: 开启: #message{type="set",subject="openroom",content=#roominfo{type="type",name="name"}} #message{type="result",subject="openroom",content="succ/failed&q 阅读全文

posted @ 2012-03-13 19:10 心笑峰 阅读(919) 评论(0) 推荐(1) 编辑

Erlang 聊天室程序(九) 主题房间2 ---房间信息管理
摘要:接着上一篇,这次处理“维护当前可用的主题房间信息”问题。 每次使用startChild启动子进程的时候将当前的房间信息保存到ets表中。更重要的是每次主题房异常退出或重启都要更新对应的信息。 修改room_manager.erl中的内容:新建一个函数来初始化房间信息表:initTab()->ets:new(roominfo,[public,ordered_set,named_table,{keypos,#roominfo.id}]).再添加对房间表数据操作的方法:addRoomInfo(Record)->#roominfo{name=Name,type=Type}=Record,c 阅读全文

posted @ 2012-03-10 18:51 心笑峰 阅读(939) 评论(0) 推荐(0) 编辑

MySQL IP字符串转数字存储过程
摘要:DELIMITER$$USE`db_im`$$DROPPROCEDUREIFEXISTS`P_bi_parasIP`$$CREATEDEFINER=`root`@`localhost`PROCEDURE`P_bi_parasIP`(INPi_ipstrVARCHAR(50),OUTPo_int1INT,OUTPo_int2INT,OUTPo_int3INT,OUTPo_int4INT,OUTPo_retINT)BEGINDECLAREv_strtempVARCHAR(50);DECLAREv_posINT;DECLAREv_subVARCHAR(10);DECLAREv_tailVARCHAR 阅读全文

posted @ 2012-03-05 22:19 心笑峰 阅读(1902) 评论(0) 推荐(0) 编辑

Erlang 聊天室程序(八) 主题房间---supervisor 的使用
摘要:之前实现的功能相当于一个大厅,这里我们为这个聊天室程序添加“主题房间的功能”。客户端登陆后处于大厅中,然后获取目前所有的主题房间,再发送消息进入到某个房间内。同一房间的成员可见,发送的消息也只限本房间可见。 为了管理这些房间,Erlang Opt中的监控树是最合适的。 新建一个模块room_manager.erl 其行为遵守gen_supervisor,子进程为chat_roominit(Para)-> {ok, { {one_for_one,3,5}, [ {the_room, {chat_room,start_link,[]}, pe... 阅读全文

posted @ 2012-03-02 18:03 心笑峰 阅读(1802) 评论(0) 推荐(0) 编辑

Erlang 聊天室程序(七) 获取在线用户
摘要:先定义消息格式如下: 请求: #message{type="get",subject="clientinfo",content="all"} 响应:#message{type="result",subject="clientinfo",content=[#clientinfo,#clientinfo,.....]} 修改客户端发送请求消息部分:clientThread.sendMsg(new Message("get","client","&qu 阅读全文

posted @ 2012-03-02 14:12 心笑峰 阅读(936) 评论(0) 推荐(0) 编辑

JAVA JSON String to Object 转换中的集合
摘要:如果要转换到的Bean类中含有类似ArrayList、Map、List这样的集合时,要对集合进行处理,否则会报“net.sf.ezmorph.bean.MorphDynaBean cannot be cast to XXX”这样的异常。 处理方法如下: 1.定义一个Map Map <String,Class> mymap = new HashMap<String,Class>(); 2.向Map中put Bean中集合成员名和对应的类型 mymap.put("content",ClientInfo.class); //我这里的成员名为content 阅读全文

posted @ 2012-03-02 12:28 心笑峰 阅读(7503) 评论(0) 推荐(0) 编辑

Erlang 聊天室程序(六) 设置客户端程序2
摘要:上篇开了个头编写了基本的框架,这次连同客户端服务器端代码一起完善下。 首先修改客户端代码: 之前在数据交换部分,客户端中定义了一个Message bean类,里面包含了发送一条消息所需要的基本信息,包括id、type、subject、from、to、content等。但这里的content是一个String 类型,如果要表示更复杂的消息就不太适用了。 由于所有的消息id、type、subject、from、to 这几个成员的类型是确定的,对应的操作方法也是固定的,所以我们抽象出一个抽象类:Packet 用来表示交互中的所有消息:Packet.java:package com.kinglong. 阅读全文

posted @ 2012-03-01 14:25 心笑峰 阅读(533) 评论(0) 推荐(0) 编辑

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示