三九宝宝网宝宝百科宝宝知识

如何使用WebSocket

01月11日 编辑 39baobao.com

[安装DLINK电信天翼3G无线网卡驱动时提示用户权限不足请使用管]您好!希望下面的回答能够对您有所帮助 这种情况是系统原因造成的,正常安装时无需使用管理员权限,直接运行即可完成安装,您可以尝试在其他电脑上安装,确认下具体原因。 安徽电信网...+阅读

首先要继承ServerEndpointConfig,并实现modifyHandshake方法,该方法有个HandshakeRequest参数,代码如下:importjavax.servlet.http.HttpSession;importjavax.websocket.HandshakeResponse;importjavax.websocket.server.HandshakeRequest;importjavax.websocket.server.ServerEndpointConfig;publicclassGetHttpSessionConfiguratorextendsServerEndpointConfig.Configurator{OverridepublicvoidmodifyHandshake(ServerEndpointConfigconfig,HandshakeRequestrequest,HandshakeResponseresponse){HttpSessionhttpSession=(HttpSession)request.getHttpSession();config.getUserProperties().put(HttpSession.class.getName(),httpSession);}}这时可以在实现ServerEndPoint的类中作为configurator参数packageaction;importjava.io.IOException;importjava.util.Set;importjava.util.concurrent.CopyOnWriteArraySet;importjavax.servlet.http.HttpSession;importjavax.websocket.EndpointConfig;importjavax.websocket.OnClose;importjavax.websocket.OnError;importjavax.websocket.OnMessage;importjavax.websocket.OnOpen;importjavax.websocket.Session;importjavax.web...首先要继承ServerEndpointConfig,并实现modifyHandshake方法,该方法有个HandshakeRequest参数,代码如下:importjavax.servlet.http.HttpSession;importjavax.websocket.HandshakeResponse;importjavax.websocket.server.HandshakeRequest;importjavax.websocket.server.ServerEndpointConfig;publicclassGetHttpSessionConfiguratorextendsServerEndpointConfig.Configurator{OverridepublicvoidmodifyHandshake(ServerEndpointConfigconfig,HandshakeRequestrequest,HandshakeResponseresponse){HttpSessionhttpSession=(HttpSession)request.getHttpSession();config.getUserProperties().put(HttpSession.class.getName(),httpSession);}}这时可以在实现ServerEndPoint的类中作为configurator参数packageaction;importjava.io.IOException;importjava.util.Set;importjava.util.concurrent.CopyOnWriteArraySet;importjavax.servlet.http.HttpSession;importjavax.websocket.EndpointConfig;importjavax.websocket.OnClose;importjavax.websocket.OnError;importjavax.websocket.OnMessage;importjavax.websocket.OnOpen;importjavax.websocket.Session;importjavax.websocket.server.ServerEndpoint;importorg.apache.log4j.Logger;importcommon.GetHttpSessionConfigurator;importcommon.HTMLFilter;ServerEndpoint(value="/action/websocket/chat",configurator=GetHttpSessionConfigurator.class)publicclassChatAction{privatefinalstaticLoggerlog=Logger.getLogger(ChatAction.class);privatestaticfinalSetonlineUsers=newCopyOnWriteArraySet();privateStringnickname;privateSessionsession;privateHttpSessionhttpSession;OnOpenpublicvoidstart(Sessionsession,EndpointConfigconfig){this.session=session;this.httpSession=(HttpSession)config.getUserProperties().get(HttpSession.class.getName());this.nickname=(String)httpSession.getAttribute("loginOperatorId");onlineUsers.add(this);Stringmessage=String.format("*%s%s",nickname,"fromwebsocket上线了");broadcast(message);}OnClosepublicvoidend(Sessionsession){onlineUsers.remove(this);Stringmessage=String.format("*%s%s",nickname,"fromwebsocket已经离开");broadcast(message);}OnMessagepublicvoidincoming(Stringmessage,EndpointConfigconfig){//NevertrusttheclientStringfilteredMessage=String.format("%s:%s",nickname,HTMLFilter.filter(message.toString()));broadcast(filteredMessage);}OnErrorpublicvoidonError(Throwablet)throwsThrowable{log.error("错误:"+t.toString(),t);}privatestaticvoidbroadcast(Stringmsg){for(ChatActionclient:onlineUsers){try{synchronized(client){client.session.getBasicRemote().sendText(msg);}}catch(IOExceptione){log.debug("错误:消息发送失败!",e);onlineUsers.remove(client);try{client.session.close();}catch(IOExceptione1){//Ignore}Stringmessage=String.format("*%s%s",client.nickname,"fromwebsocket已经离开");broadcast(message);}}}}

以下为关联文档:

苹果笔记本电脑电脑程序如何使用苹果电脑有个"Dock",默认是在屏幕下方的一个东西,类似于Windows的任务栏.如果要运行一些程序比如FCP或者Photoshop什么的嫌它碍事,可以让它隐藏掉. 屏幕上面的菜单栏的位置是固定...

apple电脑上mac系统的使用方法?一些pc上软件怎么在mac上使用在MAC苹果系统里是无法直接安装windows的软件的,如果想使用只能看应用商店有没有。 可以在mac上面安装windows操作系统,步骤如下: 1.在苹果电脑中找到“Finder”,点击打开在窗口...

word文档2007怎么使用在日常使用Word2007的过程中,我们应该要尽量的能规范Word2007文档,这样不仅便于浏览,而且也使得文档看上去更加美观。如果你需要将Word2007打印或者编订的话,符合规范的文档就显...

幼儿园功能室使用记录去文库,查看完整内容> 内容来自用户:孙峰华悦 小星星幼儿园科学发现室使用记录 日 期|班 级|使用物品|使用情况|使用人|管理员| 小星星幼儿园多功能室活动记录 日期|节次|班级...

如何合理使用指南进行幼儿园集体教学活动一、集体教学的利弊及我国幼儿园集体教学中的问题这里所谓幼儿园“集体教学活动”,是作为和“一日生活活动”和“活动区活动”相配合、共同构成幼儿园生活的一类活动。具体指...

如何合理的使用指南进行幼儿园集体教学活动在集体教学活动中使用《指南》 一、集体教学的利弊及我国幼儿园集体教学中的问题 这里所谓幼儿园“集体教学活动”,是作为和“一日生活活动”和“活动区活动”相配合、共同构...

系统时间错乱如何使用NTP进行系统时间调整解决方法: 1. 创建一个文件/etc/cron.daily/timeupdate: ___FCKpd___0nbsp;sudo nano /etc/cron.daily/timeupdate 2. 输入以下内容: ntpdate ntp.ubuntu.com 3. 保存文件后,还...

如何用websocket实现与好友列表中的指定好友聊天展开全部 题主是用原声net模块,还是socket.io呢,这里假设题主用了socket.io(不想用怎么办?看下socket.io的源码,自己实现个客户端socket连接队列) server.js var io = require('so...

基于tomcat7 java ext websocket怎么和指定的一个人进行聊天简单来说,extjsjava/tomcat websocket链接。java端维护链接列表。extjs端发送信息,至少包含from to message三个。由extjs做客户端实现GUI,用户输入具体发送什么消息,发送给谁,完...

推荐阅读
图文推荐