91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 227KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-06-08
  • 語言: Java
  • 標簽: websocket??java??

資源簡介

基于java Websocket開發(fā)的網(wǎng)頁聊天工具,曾用于本人課程設(shè)計,在此放出造福大家

資源截圖

代碼片段和文件信息

package?socket;

import?java.io.IOException;??
import?java.util.concurrent.CopyOnWriteArraySet;??
?????
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;??
?????
//該注解用來指定一個URI,客戶端可以通過這個URI來連接到WebSocket。類似Servlet的注解mapping。無需在web.xml中配置。??
@ServerEndpoint(“/websocket“)??
public?class?MyWebSocket?{??
??//?靜態(tài)變量,用來記錄當前在線連接數(shù)。應(yīng)該把它設(shè)計成線程安全的。??
??private?static?int?onlineCount?=?0;??
?????
??//?concurrent包的線程安全Set,用來存放每個客戶端對應(yīng)的MyWebSocket對象。若要實現(xiàn)服務(wù)端與單一客戶端通信的話,可以使用Map來存放,其中Key可以為用戶標識??
??private?static?CopyOnWriteArraySet?webSocketSet?=?new?CopyOnWriteArraySet();??
?????
??//?與某個客戶端的連接會話,需要通過它來給客戶端發(fā)送數(shù)據(jù)??
??private?Session?session;??
?????
??/**?
???*?連接建立成功調(diào)用的方法?
???*??
???*?@param?session?
???*??????????可選的參數(shù)。session為與某個客戶端的連接會話,需要通過它來給客戶端發(fā)送數(shù)據(jù)?
???*/??
??@OnOpen??
??public?void?onOpen(Session?session)?{??
????this.session?=?session;??
????webSocketSet.add(this);?//?加入set中??
????addOnlineCount();?//?在線數(shù)加1??
????System.out.println(“有新連接加入!當前在線人數(shù)為“?+?getOnlineCount());??
??}??
?????
??/**?
???*?連接關(guān)閉調(diào)用的方法?
???*/??
??@OnClose??
??public?void?onClose()?{??
????webSocketSet.remove(this);?//?從set中刪除??
????subOnlineCount();?//?在線數(shù)減1??
????System.out.println(“有一連接關(guān)閉!當前在線人數(shù)為“?+?getOnlineCount());??
??}??
?????
??/**?
???*?收到客戶端消息后調(diào)用的方法?
???*??
???*?@param?message?
???*??????????客戶端發(fā)送過來的消息?
???*?@param?session?
???*??????????可選的參數(shù)?
???*/??
??@OnMessage??
??public?void?onMessage(String?message?Session?session)?{??
????System.out.println(“來自客戶端的消息:“?+?message);??
?????
????//?群發(fā)消息??
????for?(MyWebSocket?item?:?webSocketSet)?{??
??????try?{??
????????item.sendMessage(message);??
??????}?catch?(IOException?e)?{??
????????e.printStackTrace();??
????????continue;??
??????}??
????}??
??}??
?????
??/**?
???*?發(fā)生錯誤時調(diào)用?
???*??
???*?@param?session?
???*?@param?error?
???*/??
??@onerror??
??public?void?onerror(Session?session?Throwable?error)?{??
????System.out.println(“發(fā)生錯誤“);??
????error.printStackTrace();??
??}??
?????
??/**?
???*?這個方法與上面幾個方法不一樣。沒有用注解,是根據(jù)自己需要添加的方法。?
???*??
???*?@param?message?
???*?@throws?IOException?
???*/??
??public?void?sendMessage(String?message)?throws?IOException?{??
????this.session.getBasicRemote().sendText(message);??
????//?this.session.getAsyncRemote().sendText(message);??
??}??
?????
??public?static?synchronized?int?getOnlineCount()?{??
????return?onlineCount;??
??}??
?????
??public?static?synchronized?void?addOnlineCount()?{??
????MyWebSocket.onlineCount++;??
??}??
?????
??public?static?synchronized?void?subOnlineCount()?{??
????MyWebSocket.onlineCount--;??
??}??
}??

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-01-08?09:11??Chat_01\
?????文件????????1093??2019-01-08?09:10??Chat_01\.classpath
?????文件????????1057??2019-01-08?09:10??Chat_01\.project
?????目錄???????????0??2019-01-08?09:11??Chat_01\.settings\
?????文件?????????564??2019-01-08?09:10??Chat_01\.settings\.jsdtscope
?????文件?????????364??2019-01-08?09:10??Chat_01\.settings\org.eclipse.jdt.core.prefs
?????文件?????????480??2019-01-08?09:10??Chat_01\.settings\org.eclipse.wst.common.component
?????文件?????????414??2019-01-08?09:10??Chat_01\.settings\org.eclipse.wst.common.project.facet.core.xml
?????文件??????????49??2019-01-08?09:10??Chat_01\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件???????????6??2019-01-08?09:10??Chat_01\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????目錄???????????0??2019-01-08?09:11??Chat_01\src\
?????目錄???????????0??2019-01-08?09:10??Chat_01\src\socket\
?????文件????????3141??2019-01-08?09:10??Chat_01\src\socket\MyWebSocket.java
?????目錄???????????0??2019-01-08?09:11??Chat_01\WebRoot\
?????文件????????4381??2019-01-08?09:10??Chat_01\WebRoot\index.jsp
?????目錄???????????0??2019-01-08?09:10??Chat_01\WebRoot\meta-INF\
?????文件??????????39??2019-01-08?09:10??Chat_01\WebRoot\meta-INF\MANIFEST.MF
?????目錄???????????0??2019-01-08?09:11??Chat_01\WebRoot\WEB-INF\
?????目錄???????????0??2019-01-08?09:11??Chat_01\WebRoot\WEB-INF\classes\
?????目錄???????????0??2019-01-08?09:10??Chat_01\WebRoot\WEB-INF\classes\socket\
?????文件????????3199??2019-01-08?09:10??Chat_01\WebRoot\WEB-INF\classes\socket\MyWebSocket.class
?????目錄???????????0??2019-01-08?09:11??Chat_01\WebRoot\WEB-INF\lib\
?????文件??????209748??2019-01-08?09:10??Chat_01\WebRoot\WEB-INF\lib\tomcat-websocket.jar
?????文件???????36661??2019-01-08?09:10??Chat_01\WebRoot\WEB-INF\lib\websocket-api.jar
?????文件?????????650??2019-01-08?09:10??Chat_01\WebRoot\WEB-INF\web.xml

評論

共有 條評論