• 大小: 7KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-03
  • 语言: Java
  • 标签: websocket  java  eclipse  

资源简介

基于Websocket 和Java的简单的聊天室,使用Eclipse开发, 服务器为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.xml

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

     文件        660  2016-04-25 10:47  WebSocket\WebContent\WEB-INF\web.xml

     目录          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\meta-INF

     目录          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


评论

共有 条评论