資源簡介
基于Websocket 和Java的簡單的聊天室,使用Eclipse開發(fā), 服務(wù)器為Tomcat8。

代碼片段和文件信息
import?java.io.IOException;
import?java.util.Hashtable;
import?java.util.Map;
import?java.util.Set;
import?java.util.logging.Logger;
import?javax.websocket.CloseReason;
import?javax.websocket.CloseReason.CloseCodes;
import?javax.websocket.OnClose;
import?javax.websocket.onerror;
import?javax.websocket.OnMessage;
import?javax.websocket.OnOpen;
import?javax.websocket.RemoteEndpoint;
import?javax.websocket.Session;
import?javax.websocket.server.PathParam;
import?javax.websocket.server.ServerEndpoint;
//注意此訪問地址格式如:“ws://“+?window.location.host+“/${pageContext.request.contextPath}/game“是ws開頭的而不是以http:開頭的.
@ServerEndpoint(value?=?“/game“)
public?class?Socket?{
????private?Logger?logger?=?Logger.getLogger(this.getClass().getName());
????static?Map?sessionMap?=?new?Hashtable();
????
????@OnOpen
????public?void?onOpen(Session?session)?{
???? sessionMap.put(session.getId()?session);
????}
????@OnMessage
????public?void?onMessage(String?unscrambledWord?Session?session)?{
???? System.out.println(unscrambledWord);
???? broadcastAll(“message“unscrambledWord);
????}
????/**
?????*?廣播給所有人
?????*?@param?message
?????*/
????public?static?void?broadcastAll(String?typeString?message){
????????Set>?set?=?sessionMap.entrySet();
????????for(Map.Entry?i:?set){
????????????try?{
???????????? i.getValue().getBasicRemote().sendText(“{type:‘“+type+“‘text:‘“+message+“‘}“);
????????????}?catch?(Exception?e)?{
????????????????e.printStackTrace();
????????????}
????????}
????}
????@OnClose
????public?void?onClose(Session?session?CloseReason?closeReason)?{
???? sessionMap.remove(session.getId());
????????logger.info(String.format(“Session?%s?closed?because?of?%s“?session.getId()?closeReason));
????}
????
????@onerror
????public?void?error(Session?session?java.lang.Throwable?throwable){
???? sessionMap.remove(session.getId());
????????System.err.println(“session?“+session.getId()+“?error:“+throwable);
????}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????836??2016-04-25?10:46??WebSocket\.classpath
?????文件???????1042??2016-04-25?10:46??WebSocket\.project
?????文件????????567??2016-04-25?10:46??WebSocket\.settings\.jsdtscope
?????文件????????364??2016-04-25?10:46??WebSocket\.settings\org.eclipse.jdt.core.prefs
?????文件????????479??2016-04-25?10:46??WebSocket\.settings\org.eclipse.wst.common.component
?????文件????????345??2016-04-25?10:46??WebSocket\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件?????????49??2016-04-25?10:46??WebSocket\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件??????????6??2016-04-25?10:46??WebSocket\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????文件???????3825??2016-05-01?15:02??WebSocket\build\classes\Socket.class
?????文件???????2090??2016-04-29?20:31??WebSocket\src\Socket.java
?????文件???????1777??2016-04-29?17:56??WebSocket\WebContent\chatroom.jsp
?????文件?????????39??2016-04-25?10:46??WebSocket\WebContent\me
?????文件????????660??2016-04-25?10:47??WebSocket\WebContent\WEB-INF\web.xm
?????目錄??????????0??2016-05-01?15:02??WebSocket\build\classes\chat
?????目錄??????????0??2016-04-25?10:46??WebSocket\WebContent\WEB-INF\lib
?????目錄??????????0??2016-05-01?15:02??WebSocket\build\classes
?????目錄??????????0??2016-04-25?10:46??WebSocket\WebContent\me
?????目錄??????????0??2016-04-25?10:47??WebSocket\WebContent\WEB-INF
?????目錄??????????0??2016-04-25?10:46??WebSocket\.settings
?????目錄??????????0??2016-04-25?10:46??WebSocket\build
?????目錄??????????0??2016-05-02?10:03??WebSocket\src
?????目錄??????????0??2016-04-25?10:46??WebSocket\WebContent
?????目錄??????????0??2016-04-25?10:46??WebSocket
-----------?---------??----------?-----??----
????????????????12079????????????????????23
評論
共有 條評論