资源简介
完整的websocket工程demo,包含html,java,jar
代码片段和文件信息
package com.web.demo;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import javax.websocket.OnClose;
import javax.websocket.onerror;
import javax.websocket.OnMessage;
import javax.websocket.OnOpen;
import javax.websocket.Session;
import javax.websocket.server.PathParam;
import javax.websocket.server.ServerEndpoint;
@ServerEndpoint(“/websocket/{userId}“)
public class WebSocketTest {
private static Map sessionMap=new HashMap();//在线的客户端session集合,只在第一次new的时候初始化。
/**
* 接收信息事件
* @param message 客户端发来的消息
* @param session 当前会话
*/
@OnMessage
public void onMessage(String messageSession session@PathParam(value=“userId“)String userId)throws Exception {
try {
Iterator it = sessionMap.keySet().iterator();
//循环给每个客户端发送信息
while(it.hasNext()){
String key = (String) it.next();
Session value = sessionMap.get(key);
value.getBasicRemote().sendText(message);
}
System.out.println(“用户“+userId+“说:“+message+“。“);
System.out.println(“当前在线人数:“+sessionMap.size());
} catch (Exception e) {
System.out.println(“接收消息事件异常!“);
}
}
/**
* 打开连接事件
* @throws Exception
*/
@OnOpen
public void onOpen(Session session@PathParam(value=“userId“)String userId) throws Exception {
System.out.println(“打开连接成功!“);
sessionMap.put(userId session);
System.out.println(“用户“+userId+“进来了。。。“);
System.out.println(“当前在线人数:“+sessionMap.size());
}
/**
* 关闭连接事件
*/
@OnClose
public void onClose(Session session@PathParam(value=“userId“)String userId) {
System.out.println(“关闭连接成功!“);
System.out.println(“用户“+userId+“离开了。。。“);
sessionMap.remove(userId);
System.out.println(“当前在线人数:“+sessionMap.size());
}
/**
* 错误信息响应事件
* @param session
* @param throwable
*/
@onerror
public void onerror(Session sessionThrowable throwable@PathParam(value=“userId“)String userId) {
System.out.println(“异常:“+throwable.getMessage());
System.out.println(“用户“+userId+“的连接出现了错误。。。“);
System.out.println(“当前在线人数:“+sessionMap.size());
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2017-03-23 16:07 websocket-demo\
文件 943 2017-03-23 17:15 websocket-demo\.classpath
文件 1413 2017-03-23 16:27 websocket-demo\.project
目录 0 2017-03-23 16:07 websocket-demo\.settings\
文件 522 2016-01-08 09:46 websocket-demo\.settings\.jsdtscope
文件 364 2016-01-08 09:46 websocket-demo\.settings\org.eclipse.jdt.core.prefs
文件 501 2016-01-08 09:46 websocket-demo\.settings\org.eclipse.wst.common.component
文件 414 2016-01-08 09:46 websocket-demo\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 49 2016-01-08 09:46 websocket-demo\.settings\org.eclipse.wst.jsdt.ui.superType.container
文件 6 2016-01-08 09:46 websocket-demo\.settings\org.eclipse.wst.jsdt.ui.superType.name
目录 0 2017-03-23 16:41 websocket-demo\WebRoot\
目录 0 2017-03-23 16:07 websocket-demo\WebRoot\me
文件 39 2016-01-08 09:46 websocket-demo\WebRoot\me
目录 0 2017-03-23 16:07 websocket-demo\WebRoot\WEB-INF\
目录 0 2017-03-23 17:15 websocket-demo\WebRoot\WEB-INF\classes\
目录 0 2017-03-23 17:15 websocket-demo\WebRoot\WEB-INF\classes\com\
目录 0 2017-03-23 17:15 websocket-demo\WebRoot\WEB-INF\classes\com\web\
目录 0 2017-03-23 17:15 websocket-demo\WebRoot\WEB-INF\classes\com\web\demo\
文件 3658 2017-03-23 17:15 websocket-demo\WebRoot\WEB-INF\classes\com\web\demo\WebSocketTest.class
目录 0 2017-03-23 16:16 websocket-demo\WebRoot\WEB-INF\lib\
文件 36611 2017-03-23 16:16 websocket-demo\WebRoot\WEB-INF\lib\javax.websocket-api-1.0.jar
文件 463 2016-01-08 09:50 websocket-demo\WebRoot\WEB-INF\web.xm
文件 1970 2017-03-23 18:13 websocket-demo\WebRoot\chat.html
文件 1193 2017-03-23 16:44 websocket-demo\WebRoot\test.html
目录 0 2017-03-23 16:07 websocket-demo\src\
目录 0 2017-03-23 16:07 websocket-demo\src\com\
目录 0 2017-03-23 16:07 websocket-demo\src\com\web\
目录 0 2017-03-23 16:07 websocket-demo\src\com\web\demo\
文件 2533 2017-03-23 16:16 websocket-demo\src\com\web\demo\WebSocketTest.java
评论
共有 条评论