資源簡介
利用flash請求模仿websocket協議建立連接。使websocket兼容IE678,部署到tomcat7,運行index.jsp即可。完美運行websocket。

代碼片段和文件信息
package?com.server;
import?java.io.IOException;
import?java.nio.ByteBuffer;
import?java.nio.CharBuffer;
import?java.util.ArrayList;
import?java.util.List;
import?java.util.Map;
import?java.util.concurrent.ConcurrentHashMap;
import?javax.servlet.http.HttpServletRequest;
import?org.apache.catalina.websocket.MessageInbound;
import?org.apache.catalina.websocket.StreamInbound;
import?org.apache.catalina.websocket.WebSocketServlet;
import?org.apache.catalina.websocket.WsOutbound;
import?com.talk.TalkManager;
public?class?ServerSocket?extends?WebSocketServlet?{
????private?static?final?long?serialVersionUID?=?-4853540828121130946L;
????public?static?Map>?clients?=?new?ConcurrentHashMap>();
????private?String?user_id?;?
????
????@Override
protected?StreamInbound?createWebSocketInbound(String?arg0?HttpServletRequest?request)?{
???? user_id?=?request.getParameter(?“user_id“?);
return?new?MyMessageInbound();
}
public?class?MyMessageInbound?extends?MessageInbound??{
public?WsOutbound?myoutbound;
public?String?userId?=?user_id?;?
????????@Override
????????public?void?onOpen(WsOutbound?outbound)?{
????????????try?{
????????????????System.out.println(“Open>>>>>>用戶ID為“?+?userId?+?“建立連接“?);
????????????????this.myoutbound?=?outbound;
????????????????
????????????????if?(clients.containsKey(userId)){
??????? ???? ?List?list?=?clients.get(userId);
??????? ???? ?list.add(this);
??????? ?????????clients.put(userId?list);
??????? ??? }else{
??????? ???? ?List?list?=?new?ArrayList();
??????? ???? ?list.add(this);
??????? ???? ?clients.put(userId?list);
??????? ??? }
????????????????
????????????????outbound.writeTextMessage(CharBuffer.wrap(“Hello!“));
????????????}?catch?(IOException?e)?{
????????????????e.printStackTrace();
????????????}
????????}
????????@Override
????????public?void?onTextMessage(CharBuffer?cb)?throws?IOException?{
????????????System.out.println(“服務器收到消息?:?“?+?cb);
????????????TalkManager.broadcast(cb.toString());
????????}
????????@Override
????????public?void?onClose(int?status)?{
????????????if(?status?==?1002?||?status?==?1000)
????????????{
????????????????System.out.println(“Close>>>>>>用戶ID為“?+?userId?+?“斷開連接“?);
???????????? List?list?=?clients.get(userId);
????????? ??? list.remove(this);
????????????}
????????}
????????@Override
????????public?void?onBinaryMessage(ByteBuffer?bb)?throws?IOException?{
????????
????????}
?
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2017-02-24?17:08??webchat\
?????文件?????????708??2017-02-24?17:08??webchat\.classpath
?????目錄???????????0??2017-02-25?17:59??webchat\.myeclipse\
?????文件?????????294??2017-02-24?17:08??webchat\.myme
?????文件????????1750??2017-02-24?17:34??webchat\.project
?????目錄???????????0??2017-02-24?17:08??webchat\.settings\
?????文件?????????500??2017-02-24?17:08??webchat\.settings\.jsdtscope
?????文件?????????598??2017-02-24?17:08??webchat\.settings\org.eclipse.jdt.core.prefs
?????文件?????????457??2017-02-24?17:08??webchat\.settings\org.eclipse.wst.common.component
?????文件?????????252??2017-02-24?17:08??webchat\.settings\org.eclipse.wst.common.project.facet.core.xm
?????文件??????????49??2017-02-24?17:08??webchat\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件???????????6??2017-02-24?17:08??webchat\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????目錄???????????0??2017-02-25?16:12??webchat\WebRoot\
?????目錄???????????0??2017-02-24?17:08??webchat\WebRoot\me
?????文件??????????36??2017-02-24?17:08??webchat\WebRoot\me
?????目錄???????????0??2017-02-24?17:08??webchat\WebRoot\WEB-INF\
?????目錄???????????0??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\
?????目錄???????????0??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\
?????目錄???????????0??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\server\
?????文件????????2918??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\server\ServerSocket$MyMessageInbound.class
?????文件????????1362??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\server\ServerSocket.class
?????目錄???????????0??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\servlet\
?????文件????????1052??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\servlet\InitServers.class
?????目錄???????????0??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\talk\
?????文件????????2239??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\talk\TalkManager.class
?????目錄???????????0??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\thread\
?????文件????????1373??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\thread\PolicyServer.class
?????文件????????2174??2017-02-25?17:41??webchat\WebRoot\WEB-INF\classes\com\thread\PolicyThread.class
?????目錄???????????0??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\utils\
?????文件????????1853??2017-02-25?17:28??webchat\WebRoot\WEB-INF\classes\com\utils\SocketUtil.class
?????目錄???????????0??2017-02-24?17:32??webchat\WebRoot\WEB-INF\lib\
............此處省略23個文件信息
評論
共有 條評論