利用websocket技术写群聊demo,包含maven项目源码,采用分别采用原生Java原生websocket,和spring websocket实现
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 275 2016-03-26 21:37 web.ideaartifactsweb_war.xml
文件 2418 2016-04-10 10:54 web.ideaartifactsweb_war_exploded.xml
文件 1182 2016-04-03 17:20 web.ideacompiler.xml
文件 76 2016-03-26 21:36 web.ideacopyrightprofiles_settings.xml
文件 241 2016-04-03 20:59 web.ideainspectionProfilesprofiles_settings.xml
文件 669 2016-04-03 20:59 web.ideainspectionProfilesProject_Default.xml
文件 499 2016-04-03 16:57 web.idealibrariesMaven__aopalliance_aopalliance_1_0.xml
文件 557 2016-04-03 16:57 web.idealibrariesMaven__commons_logging_commons_logging_1_1_3.xml
文件 629 2016-04-04 09:53 web.idealibrariesMaven__com_fasterxml_jackson_core_jackson_annotations_2_3_0.xml
文件 580 2016-04-04 09:52 web.idealibrariesMaven__com_fasterxml_jackson_core_jackson_core_2_3_1.xml
文件 608 2016-04-04 09:53 web.idealibrariesMaven__com_fasterxml_jackson_core_jackson_databind_2_3_1.xml
文件 571 2016-04-03 14:09 web.idealibrariesMaven__javax_websocket_javax_websocket_api_1_0.xml
文件 440 2016-03-26 22:23 web.idealibrariesMaven__junit_junit_4_11.xml
文件 454 2016-03-31 22:16 web.idealibrariesMaven__log4j_log4j_1_2_17.xml
文件 517 2016-03-26 22:23 web.idealibrariesMaven__org_hamcrest_hamcrest_core_1_3.xml
文件 498 2016-03-31 22:17 web.idealibrariesMaven__org_slf4j_slf4j_api_1_7_20.xml
文件 526 2016-03-31 22:19 web.idealibrariesMaven__org_slf4j_slf4j_log4j12_1_7_20.xml
文件 594 2016-04-03 16:57 web.idealibrariesMaven__org_springframework_spring_aop_4_1_2_RELEASE.xml
文件 608 2016-04-03 16:57 web.idealibrariesMaven__org_springframework_spring_beans_4_1_2_RELEASE.xml
文件 622 2016-04-03 16:57 web.idealibrariesMaven__org_springframework_spring_context_4_1_2_RELEASE.xml
文件 601 2016-04-03 16:57 web.idealibrariesMaven__org_springframework_spring_core_4_1_2_RELEASE.xml
文件 643 2016-04-03 16:57 web.idealibrariesMaven__org_springframework_spring_expression_4_1_2_RELEASE.xml
文件 615 2016-04-03 16:57 web.idealibrariesMaven__org_springframework_spring_webmvc_4_1_2_RELEASE.xml
文件 636 2016-04-03 17:17 web.idealibrariesMaven__org_springframework_spring_websocket_4_1_2_RELEASE.xml
文件 594 2016-04-03 16:57 web.idealibrariesMaven__org_springframework_spring_web_4_1_2_RELEASE.xml
文件 3172 2016-03-31 22:24 web.ideamisc.xml
文件 246 2016-04-10 10:54 web.ideamodules.xml
文件 1706 2016-04-04 08:26 web.idea
ebel_project.xml
文件 8792 2016-04-03 20:56 web.ideauiDesigner.xml
文件 167 2016-03-26 21:37 web.ideavcs.xml
............此处省略158个文件信息
package zhang.sockjs;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.socket.*;
import zhang.util.MsgUtils;
import java.io.IOException;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import java.util.concurrent.ConcurrentHashMap;
/**
* Created by zhang on 2016/4/3.
*/
public class MsgSocketJ extends MsgUtils implements WebSocketHandler {
static ConcurrentHashMap clients=new ConcurrentHashMap<>();
static Logger logger = LoggerFactory.getLogger(MsgSocketJ.class);
static ConcurrentHashMap localInfo=new ConcurrentHashMap<>();
/**
* 握手成功后执行的方法
* @param webSocketSession
* @throws Exception
*/
@Override
public void afterConnectionEstablished(WebSocketSession webSocketSession) throws Exception {
logger.debug(“A new client connected!!!“);
SessionBean sessionBean=new SessionBean();
sessionBean.setSession(webSocketSession);
localInfo.put(webSocketSession.getId()sessionBean);//记录客户端session
}
/**
* 接收到消息后执行的方法
* @param webSocketSession
* @param webSocketMessage
* @throws Exception
*/
@Override
public void handleMessage(WebSocketSession webSocketSession WebSocketMessage> webSocketMessage) throws Exception {
String message= (String) webSocketMessage.getPayload();
if(message.startsWith(“$$username“)){
localInfo.get(webSocketSession.getId()).setUsername(message.split(“=“)[1]);
clients.put(webSocketSession.getId()webSocketSession);
broadcast(nowTime()+“ 服务器消息“+ “:欢迎““+localInfo.get(webSocketSession.getId()).getUsername()+““加入聊天;“truewebSocketSession);
userList();
}else{
broadcast(nowTime()+“ “+localInfo.get(webSocketSession.getId()).getUsername()+“:“+messagefalsewebSocketSession);
}
}
/**
* 发生异常时执行的方法
* @param webSocketSession
* @param throwable
* @throws Exception
*/
@Override
public void handleTransportError(WebSocketSession webSocketSession Throwable throwable) throws Exception {
logger.error(“An error triggered!!!“);
logger.error(throwable.getMessage()throwable);
clients.remove(webSocketSession.getId());
broadcast(nowTime()+“ 服务器消息“+“:““+localInfo.get(webSocketSession.getId()).getUsername()+““离开聊天室;“truewebSocketSession);
userList();
localInfo.remove(webSocketSession.getId());
}
/**
* 连接断开时执行的方法
* @param webSocketSession
* @param closeStatus
* @throws Exception
*/
@Override
public void afterConnectionClosed(WebSocketSession webSocketSession CloseStatus closeStatus) throws Exception {
logger.debug(“A client has disconnected!!!“);
clients.remove(webSocketSession.getId());//移除离线的session
broadc
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 275 2016-03-26 21:37 web.ideaartifactsweb_war.xm
文件 2418 2016-04-10 10:54 web.ideaartifactsweb_war_exploded.xm
文件 1182 2016-04-03 17:20 web.ideacompiler.xm
文件 76 2016-03-26 21:36 web.ideacopyrightprofiles_settings.xm
文件 241 2016-04-03 20:59 web.ideainspectionProfilesprofiles_settings.xm
文件 669 2016-04-03 20:59 web.ideainspectionProfilesProject_Default.xm
文件 499 2016-04-03 16:57 web.idealibrariesMaven__aopalliance_aopalliance_1_0.xm
文件 557 2016-04-03 16:57 web.idealibrariesMaven__commons_logging_commons_logging_1_1_3.xm
文件 629 2016-04-04 09:53 web.idealibrariesMaven__com_fasterxm
文件 580 2016-04-04 09:52 web.idealibrariesMaven__com_fasterxm
文件 608 2016-04-04 09:53 web.idealibrariesMaven__com_fasterxm
文件 571 2016-04-03 14:09 web.idealibrariesMaven__javax_websocket_javax_websocket_api_1_0.xm
文件 440 2016-03-26 22:23 web.idealibrariesMaven__junit_junit_4_11.xm
文件 454 2016-03-31 22:16 web.idealibrariesMaven__log4j_log4j_1_2_17.xm
文件 517 2016-03-26 22:23 web.idealibrariesMaven__org_hamcrest_hamcrest_core_1_3.xm
文件 498 2016-03-31 22:17 web.idealibrariesMaven__org_slf4j_slf4j_api_1_7_20.xm
文件 526 2016-03-31 22:19 web.idealibrariesMaven__org_slf4j_slf4j_log4j12_1_7_20.xm
文件 594 2016-04-03 16:57 web.idealibrariesMaven__org_springfr
文件 608 2016-04-03 16:57 web.idealibrariesMaven__org_springfr
文件 622 2016-04-03 16:57 web.idealibrariesMaven__org_springfr
文件 601 2016-04-03 16:57 web.idealibrariesMaven__org_springfr
文件 643 2016-04-03 16:57 web.idealibrariesMaven__org_springfr
文件 615 2016-04-03 16:57 web.idealibrariesMaven__org_springfr
文件 636 2016-04-03 17:17 web.idealibrariesMaven__org_springfr
文件 594 2016-04-03 16:57 web.idealibrariesMaven__org_springfr
文件 3172 2016-03-31 22:24 web.ideamisc.xm
文件 246 2016-04-10 10:54 web.ideamodules.xm
文件 1706 2016-04-04 08:26 web.idea
ebel_project.xm
文件 8792 2016-04-03 20:56 web.ideauiDesigner.xm
文件 167 2016-03-26 21:37 web.ideavcs.xm
............此处省略158个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)