资源简介
WebSocket+Tomcat8实现-Web版即时聊天室
代码片段和文件信息
package com.socket;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpSession;
import javax.websocket.EndpointConfig;
import javax.websocket.OnClose;
import javax.websocket.onerror;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.ServerEndpoint;
import utils.MessageUtil;
@ServerEndpoint(value = “/websocket“configurator=GetHttpSessionConfigurator.class)
public class ChatServlet {
private static final Map onlineUsers = new HashMap();
private static int onlineCount = 0;
private HttpSession httpSession;
private Session session;
@OnOpen
public void onOpen(Session sessionEndpointConfig config){
this.session = session;
this.httpSession = (HttpSession) config.getUserProperties().get(HttpSession.class.getName());
if(httpSession.getAttribute(“user“) != null){
onlineUsers.put(httpSession this);
}
String names = getNames();
String content = MessageUtil.sendContent(MessageUtil.USERnames);
broadcastAll(content);
addOnlineCount(); //在线数加1
System.out.println(“有新连接加入!当前在线人数为“ + onlineUsers.size());
}
@OnClose
public void onClose(){
onlineUsers.remove(this); //从set中删除
subOnlineCount(); //在线数减1
System.out.println(“有一连接关闭!当前在线人数为“ + getOnlineCount());
}
@OnMessage
public void onMessage(String message Session session) throws IOException {
HashMap messageMap = MessageUtil.getMessage(message); //处理消息类
String fromName = messageMap.get(“fromName“); //消息来自人 的userId
String toName = messageMap.get(“toName“); //消息发往人的 userId
String mapContent = messageMap.get(“content“);
if(toName.isEmpty()){
sendOffLine(fromNametoName);
return;
}
if(“all“.equals(toName)){
String msgContentString = fromName + “对所有人说: “ + mapContent; //构造发送的消息
String content = MessageUtil.sendContent(MessageUtil.MESSAGEmsgContentString);
broadcastAll(content);
}else{
try {
String content = MessageUtil.sendContent(MessageUtil.MESSAGEmapContent);
singleChat(fromNametoNamecontent);
} catch (IOException e) {
e.printStackTrace();
}
}
System.out.println(“来自客户端的消息:“ + message);
broadcastAll(message);
}
private void singleChat(String fromName String toName String mapContent) throws IOException {
String msgContentString = fromName + “对“ + toName + “说: “ + mapContent;
String contentTemp = MessageUtil.sendContent(MessageUtil.MESSAGEmsgContentString);
boolean isExit = false;
for (HttpSession key : onlineUsers.keySet()) {
if(key.getAttribute(“user“).equals(toName)){
isExit = true;
}
}
if(isExit){
for (HttpSession key : onlineUsers.keySet()) {
if(key.getAttribute(“user“).equals(fromName) || key.getAttribute(“user“).equals(toName))
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 834 2015-10-13 08:32 WebSocket8\.classpath
文件 1043 2015-10-13 08:32 WebSocket8\.project
文件 503 2015-10-13 08:32 WebSocket8\.settings\.jsdtscope
文件 364 2015-10-13 08:32 WebSocket8\.settings\org.eclipse.jdt.core.prefs
文件 482 2015-10-13 08:32 WebSocket8\.settings\org.eclipse.wst.common.component
文件 345 2015-10-13 08:32 WebSocket8\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2015-10-13 08:32 WebSocket8\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2015-10-13 08:32 WebSocket8\.settings\org.eclipse.wst.jsdt.ui.superType.name
文件 6329 2015-10-13 11:35 WebSocket8\build\classes\com\socket\ChatServlet.class
文件 1288 2015-10-13 10:38 WebSocket8\build\classes\com\socket\GetHttpSessionConfigurator.class
文件 1077 2015-10-13 10:38 WebSocket8\build\classes\utils\HTMLFilter.class
文件 1706 2015-10-13 10:44 WebSocket8\build\classes\utils\MessageUtil.class
文件 4757 2015-10-13 11:35 WebSocket8\src\com\socket\ChatServlet.java
文件 582 2015-10-13 08:32 WebSocket8\src\com\socket\GetHttpSessionConfigurator.java
文件 2148 2015-10-13 08:32 WebSocket8\src\utils\HTMLFilter.java
文件 937 2015-10-13 10:43 WebSocket8\src\utils\MessageUtil.java
文件 2617 2015-10-13 11:55 WebSocket8\WebContent\chat.jsp
文件 94845 2015-10-07 10:09 WebSocket8\WebContent\js\jquery-1.7.2.min.js
文件 491 2015-10-09 14:43 WebSocket8\WebContent\login.jsp
文件 39 2015-10-13 08:32 WebSocket8\WebContent\me
文件 210856 2015-10-13 10:38 WebSocket8\WebContent\WEB-INF\lib\gson-2.3.1.jar
文件 243 2015-10-07 08:48 WebSocket8\WebContent\WEB-INF\web.xm
目录 0 2015-10-13 10:38 WebSocket8\build\classes\com\socket
目录 0 2015-10-13 10:38 WebSocket8\build\classes\com
目录 0 2015-10-13 10:38 WebSocket8\build\classes\utils
目录 0 2015-10-13 08:53 WebSocket8\src\com\socket
目录 0 2015-10-13 10:38 WebSocket8\WebContent\WEB-INF\lib
目录 0 2015-10-13 10:38 WebSocket8\build\classes
目录 0 2015-10-13 08:32 WebSocket8\src\com
目录 0 2015-10-13 08:32 WebSocket8\src\utils
............此处省略11个文件信息
- 上一篇:中缀表达式输入、转换与计算前缀和后缀内附流程图
- 下一篇:QT网络调试助手
相关资源
- Tomcat7.0.52绿色版
- 虚拟机配置+群集配置+tomcat服务器实现
- 自动清除tomcat缓存及日志
- 度假村管理系统
- 基于MVC的网上书城系统
- tomcat控制台详细错误日志设置
- 易语言websocket服务器源码
- websocket规范 RFC6455 中文版
- apache-tomcat-7.0.79.zip
- 牛族Tomcat-auot-最新v1.2版
- websocket-rtsp-proxy-test.zip
- SSH功能完善的通讯录
- tomcat6.0 64位
- how tomcat works 高清中文版,英文版和随
- tomcat7.0.42 下部署websocket需要替换的包
- tomcat7.063稳定版
- 物联网,WEBSOCKET丰富案例
- websocket简单web项目,直接部署可使用
- apache-tomcat-6.0.47.tar.gz
- 高德地图+websocket
- libwebsockets-v1.6-stable.tar.gz
- apache-tomcat-7.0.63-windows-x64
- apache-tomcat-9.0.0.M26.tar
- tomcat-8.0.47
- linux tomcat 32位
- tomcat-6.0.26.tar.gz
- apache-tomact-8.0.20(32位和64位)
- 分布式集群Session共享 简单多tomcat8+
- apache-tomcat-8.5.8.tar.gz
- tomcat6.0.20免安装版
评论
共有 条评论