资源简介

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.xml

     文件         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\meta-INF\MANIFEST.MF

     文件     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.xml

     目录          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个文件信息

评论

共有 条评论