最近有网友 基于宝贝鱼(CshBBrain)开发聊天类应用 遇到群发、广播消息的问题,现已处理,将处理过程贴出来 供开发这方面应用的朋友参考,少走弯路。(宝贝鱼(CshBBrain) 的使用问题本想开一个群组讨论的,在iteye上我无法再创建群组了,只有贴到专栏来了)
请教一个在使用Websocket服务端时关于消息广播的问题 |
|
|
|
你好,想跟你请教个问题:
在运行股票的那个示例程序时,配置文件中broadSwitch=1。
但运行两个客户端页面时,只会有一个页面可以成功接收到消息,而另一个页面会进入onerror方法,请问这是为什么?我如何能查看onerror(event)的详细错误信息?event.data和event.text两个属性不行。
谢谢!
|
Re: 请教一个在使用Websocket服务端时关于消息广播的问题 |
|
|
|
下载新版本的程序,这是一个bug,老版本的程序有,已经解决这个缺陷。 http://cshbbrain.iteye.com/blog/1724397
|
请教一个在使用Websocket服务端时关于消息广播的问题
请问我如何才能在WebSocketProcesser或Service中接收客户端请求中的数据再把它广播出去?MasterServer.addBroadMessage(rs);调用这个方法会报错。
|
谢谢!
请教一个在使用Websocket服务端时关于消息广播的问题
我想模仿Tomcat7的那几个WebSocket示例基于您的服务端实现一下,但对广播的使用目前还搞不清楚,做chat.html和snake.html两个实例时有困难,麻烦您能给简要说一说实现的思路吗?谢谢。
请教一个消息广播的问题 |
|
|
|
public Response service(Client sockector, HashMap<String, String> requestData){
if(requestData == null){
return null;
}
log.info(requestData.get(Constants.FILED_MSG));
Response responseMessage = null;
try{
if(!MyStringUtil.isBlank(requestData.get(Constants.HANDSHAKE))){
responseMessage = Response.msgOnlyBody(requestData.get(Constants.FILED_MSG));
}else{
responseMessage = Response.msgOnlyBody("Hello," + requestData.get(Constants.FILED_MSG));
}
}catch(Exception e){
e.printStackTrace();
responseMessage = Response.msgOnlyBody("500处理失败了");
}
return responseMessage;
}
请问,在Service中我如何广播消息。我尝试过这样
Response responseMessage = null;
if(!MyStringUtil.isBlank(requestData.get(Constants.HANDSHAKE))){
responseMessage = Response.msgOnlyBody(requestData.get(Constants.FILED_MSG));
}else{
responseMessage = Response.msgOnlyBody("Hello," + requestData.get(Constants.FILED_MSG));
}
MasterServer.addBroadMessage(responseMessage);
但是会报如下错误信息
java.lang.NullPointerException
at com.jason.server.Response.msgRespose(Response.java:120)
麻烦您时间方便请指点一下该怎样实现。
|
|
|
|
|
Re: 请教一个消息广播的问题 |
|
|
|
看了下你的问题,CshBBrain最新版本有个问题修改下就可以了。我直接贴代码:
MyStringUtil.java
添加属性: public static final String CSHBBRAIN_CONTENT = "CSHBBRAIN_CONTENT";
修改方法:
public static HashMap<String,String> parseKeyValue(String msg){ if(isBlank(msg)){ return null; } String values = null; try{ values = URLDecoder.decode(msg, CoderUtils.UTF8); }catch(UnsupportedEncodingException e){ throw new UnsupportedCharsetException(CoderUtils.UTF8); } HashMap<String,String> requestData = new HashMap<String,String>(); requestData.put(CSHBBRAIN_CONTENT, values);// 所有信息 Matcher m = PARAM_PATTERN.matcher(values); int pos = 0; while (m.find(pos)) { pos = m.end(); requestData.put(m.group(1), m.group(2)); } return requestData; }
Service.java public Response service(Client sockector, HashMap<String, String> requestData){ if(requestData == null){ return null; }
Response responseMessage = null;
try{ if(!MyStringUtil.isBlank(requestData.get(Constants.HANDSHAKE))){ responseMessage = Response.msgOnlyBody(requestData.get(Constants.FILED_MSG)); }else{ MasterServer.addBroadMessage(Response.msgOnlyBody("hello " + requestData.get(MyStringUtil.CSHBBRAIN_CONTENT))); responseMessage = Response.msgOnlyBody("hello " + requestData.get(MyStringUtil.CSHBBRAIN_CONTENT)); //responseMessage = Response.msgOnlyBody("var taskKey= " + requestData.get("taskKey") + "; var resultData= '<-" + requestData.get("taskKey") +"->'"); } }catch(Exception e){ e.printStackTrace(); responseMessage = Response.msgOnlyBody("500处理失败了"); }
return responseMessage; }
|
|
|
|
|
Re: 请教一个消息广播的问题 |
|
|
|
以上代码务必请下载最新版本 http://code.google.com/p/cshbbrain/downloads/list
|
由于新版本的功能尚未开发完毕,这个问题将在下次更新版本时一并提交。
分享到:
相关推荐
微信公众号零基础开发视频--群发消息和模版消息,零基础视频开发介绍 对应视频请下载对应连接,微信公众号开发视频(全)
使用Netty实现的简单的聊天消息群发的工具类,支持多客户端发送消息给服务端,并由服务端将详细群发给所有的客户端,也可以在此基础上修改,实现一对一的聊天消息发送,希望对初学Netty的同学有所帮助。
微信三方代开发公众号消息管理-群发(文本、图片、图文、语音/音频、视频)消息的方法和规则进行详细的说明
基于c#开发的邮件群发系统源码
基于jabber协议的linq聊天群发工具源代码
用 JavaSocket 编程开发聊天室 用 Java 图形用户界面编写聊天室服务器端和客户端, 支持多个客户端连接到一个服务器。每个客户端能够输入账号。 可以实现群聊(聊天记录显示在所有客户端界面)。 完成好友列表在...
通过调用webSocketSev类的方法,指定用户名,实现指定用户发送消息和群发消息
原创QQ推广版QQ群发消息-QQmsg.rar 本帖最后由 caicaibi 于 2018-4-20 22:35 编辑 前天看到一个朋友写 ‘如何让MATLAB在完成计算后通知你’,楼主以前都是用邮件或短信的方式接收,这朋友却提到用微信的方式...
C#实现微信公众号群发消息(解决一天只能发一次的限制) C#实现微信公众号群发消息(解决一天只能发一次的限制) C#实现微信公众号群发消息(解决一天只能发一次的限制)
微信客服消息和群发.java开发web项目
易语言基于酷Q开发的QQ群发插件。@唐长老网络。Tags:QQ群发插件源码。
自动给MSN 按组群发消息(with source)
TangramUCMA 是基于微软LyncServer UCMA4.0做的扩展开发,是TangramServer架构针对LyncServer UCMA开发的具体应用。由一个ApplicationEndPoint和一组UserEndPoint来组成,每个UserEndPoint可以对应一个独立的C#类,...
自动给MSN 按组群发消息(with source)by KUNMING Unida 人在昆明
webqq协议QQ消息群发,用了精易模块,。@Integer。
基于Java和websocket的在线聊天程序,使用JSON传输数据,可以群发和单发。在eclipse和jdk 8下运行正常,包含json依赖的所有包。
destoon添加微信消息模板群发功能,可定制群发内容,可按用户地区群发,可定向群发可定向群发可定向群发可定向群发可定向群发可定向群发
自己写的基于CURL的PHP微信公众平台消息群发功能,PHP必须开启CURL支持,支持获取关注用户的详细信息、支持单发消息
C++/Qt框架基于UDP网络通信协议实现对广播消息的发送与接收