资源简介
利用websocket技术写群聊demo,包含maven项目源码,采用分别采用原生Java原生websocket,和spring websocket实现
代码片段和文件信息
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\.idea\artifacts\web_war.xm
文件 2418 2016-04-10 10:54 web\.idea\artifacts\web_war_exploded.xm
文件 1182 2016-04-03 17:20 web\.idea\compiler.xm
文件 76 2016-03-26 21:36 web\.idea\copyright\profiles_settings.xm
文件 241 2016-04-03 20:59 web\.idea\inspectionProfiles\profiles_settings.xm
文件 669 2016-04-03 20:59 web\.idea\inspectionProfiles\Project_Default.xm
文件 499 2016-04-03 16:57 web\.idea\libraries\Maven__aopalliance_aopalliance_1_0.xm
文件 557 2016-04-03 16:57 web\.idea\libraries\Maven__commons_logging_commons_logging_1_1_3.xm
文件 629 2016-04-04 09:53 web\.idea\libraries\Maven__com_fasterxm
文件 580 2016-04-04 09:52 web\.idea\libraries\Maven__com_fasterxm
文件 608 2016-04-04 09:53 web\.idea\libraries\Maven__com_fasterxm
文件 571 2016-04-03 14:09 web\.idea\libraries\Maven__javax_websocket_javax_websocket_api_1_0.xm
文件 440 2016-03-26 22:23 web\.idea\libraries\Maven__junit_junit_4_11.xm
文件 454 2016-03-31 22:16 web\.idea\libraries\Maven__log4j_log4j_1_2_17.xm
文件 517 2016-03-26 22:23 web\.idea\libraries\Maven__org_hamcrest_hamcrest_core_1_3.xm
文件 498 2016-03-31 22:17 web\.idea\libraries\Maven__org_slf4j_slf4j_api_1_7_20.xm
文件 526 2016-03-31 22:19 web\.idea\libraries\Maven__org_slf4j_slf4j_log4j12_1_7_20.xm
文件 594 2016-04-03 16:57 web\.idea\libraries\Maven__org_springfr
文件 608 2016-04-03 16:57 web\.idea\libraries\Maven__org_springfr
文件 622 2016-04-03 16:57 web\.idea\libraries\Maven__org_springfr
文件 601 2016-04-03 16:57 web\.idea\libraries\Maven__org_springfr
文件 643 2016-04-03 16:57 web\.idea\libraries\Maven__org_springfr
文件 615 2016-04-03 16:57 web\.idea\libraries\Maven__org_springfr
文件 636 2016-04-03 17:17 web\.idea\libraries\Maven__org_springfr
文件 594 2016-04-03 16:57 web\.idea\libraries\Maven__org_springfr
文件 3172 2016-03-31 22:24 web\.idea\misc.xm
文件 246 2016-04-10 10:54 web\.idea\modules.xm
文件 1706 2016-04-04 08:26 web\.idea\rebel_project.xm
文件 8792 2016-04-03 20:56 web\.idea\uiDesigner.xm
文件 167 2016-03-26 21:37 web\.idea\vcs.xm
............此处省略158个文件信息
相关资源
- 《精通Spring MVC》(Pro Spring MVC With W
- Spring与ActiveMQ的整合的完整demo
- activemq整合spring完整代码内含所有相关
- JavaEE企业级应用开发教程Spring+Spring
- java web学生考试系统,mysql数据库
- 单车共享租用系统
- SSH框架实现BBS完整版.2018_03_16
- java网上商城(ssm)
- 自学管理系统
- java内部人员物流网站项目
- 毕业设计-酒店住宿管理系统EXT+Sprin
- S1SH 增删改查
- 精通Java EE:Eclipse Struts 2 Hibernate Sprin
- springmvc+maven+hibernate(JPA)实现的一个
- Spring MVc 3.2 jar包
- JAVA后台管理系统
- 基于java ssm框架在线考题系统源码,附
- 航空票务系统(Spring+Struts+Hibernate)(
- JavaEE开发的颠覆者- Spring Boot实战epu
- JavaWeb学生在线选课系统Struts+Hibernat
- JavaEE开发的颠覆者- Spring Boot实战 pd
- SpringBoot2.0+BootStrap+Maven+GeeTest极验滑动
- javaee Struts2+Hibernate+Spring学生成绩管理
- java实现springboot开发微信公众号
- SSM+websocket+freemarker+mybatis分页插件+多
- 毕业设计-Struts2+Hibernate4.2+Spring3的学生
- 毕业设计-Struts2+Hibernate4.2+Spring3的健身
- 毕业设计-Struts2+Hibernate4.2+Spring3的SS
- 基于SpringMvc的云音乐网站
- springboot+bootstrap论坛
评论
共有 条评论