资源简介
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网络调试助手
相关资源
- Tomcat 部署 war 源文件 springmvc_war.zip
- websocket使用(spring mvc)
- WebSocket Demo
- Tomcat中间件监控配置&指标.doc
- tomcat配置INFORMIX数据库的连接池(测试
- sgcWebSockets_D7 实现WebSockets
- jdktomcat环境变量自动配置工具
- qwebsocket使用wss连接工程源码,qt5.7d
- apache-tomcat-7.0.90
- Linux相关--apache-tomcat-7.0.57.tar.gz
- Tomcat7中文文档(配置说明详解)
- apache-tomcat-7.0.103.zip
- django+channels 2.0实现websocket
- libwebsocket VS2008编译的动态库静态库
- tcnative-1.dll 包括32位/64位
- tcnative-1.dll win64 1.1.30
- tomcat64位tcnative-1.dll文件
- spring boot项目和vue一起放在tomcat部署
- apache-tomcat-8.0.36-windows-x64
- apache-tomcat-5.5.26
- websocket_客户端
- WebSocket 服务端 封装 解析 16进制 字符
- jmeter+websocket接口测试所需插件集合
- Websphere下部署与tomcat程序配置的差异
- apache-tomcat-8.0.32.tar.gz
- apache-tomcat-7.0.82.tar.gz
- apache-tomcat-7.0.73.tar.gz
- websocket-sharp.dll
- h5聊天室websocket实现
- websocket项目demo
评论
共有 条评论