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

  • 大小: 7.18MB
    文件類(lèi)型: .zip
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2023-09-23
  • 語(yǔ)言: Java
  • 標(biāo)簽: 即時(shí)聊天??

資源簡(jiǎn)介

java即時(shí)聊天,基于websocket網(wǎng)頁(yè)多用戶(hù)在線(xiàn)群聊 http://blog.csdn.net/qq_23994787/article/details/77601434

資源截圖

代碼片段和文件信息

package?com.jsx.chat;

import?java.io.IOException;
import?java.text.SimpleDateFormat;
import?java.util.Date;
import?java.util.HashMap;
import?java.util.Map;
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.PathParam;
import?javax.websocket.server.ServerEndpoint;

import?net.sf.json.JSONobject;

/**
?*?聊天服務(wù)器
?*?@author?落塵曦???2017.8.25
?*?@version?v1.0
?*/
@ServerEndpoint(“/websocket/{userId}“)
public?class?ChatServer?{
private?static?final?SimpleDateFormat?DATE_FORMAT?=?new?SimpleDateFormat(“yyyy-MM-dd?HH:mm“); //?日期格式化
//靜態(tài)變量,用來(lái)記錄當(dāng)前在線(xiàn)連接數(shù)。應(yīng)該把它設(shè)計(jì)成線(xiàn)程安全的。
private?static?int?onlineCount?=?0;
//concurrent包的線(xiàn)程安全Set,用來(lái)存放每個(gè)客戶(hù)端對(duì)應(yīng)的MyWebSocket對(duì)象。若要實(shí)現(xiàn)服務(wù)端與單一客戶(hù)端通信的話(huà),可以使用Map來(lái)存放,其中Key可以為用戶(hù)標(biāo)識(shí)
private?static?CopyOnWriteArraySet?webSocketSet?=?new?CopyOnWriteArraySet();
//與某個(gè)客戶(hù)端的連接會(huì)話(huà),需要通過(guò)它來(lái)給客戶(hù)端發(fā)送數(shù)據(jù)
private?Session?session;
private?String?userId;
//----------單聊---------用戶(hù)id和websocket的session綁定的路由表
????//@SuppressWarnings(“rawtypes“)
????//private?static?Map?routeTable?=?new?HashMap<>();
/**
*?連接建立成功調(diào)用的方法
*?@param?session??可選的參數(shù)。session為與某個(gè)客戶(hù)端的連接會(huì)話(huà),需要通過(guò)它來(lái)給客戶(hù)端發(fā)送數(shù)據(jù)
*/
@OnOpen
public?void?open(@PathParam(“userId“)String?userIdsSession?session)?{
//?添加初始化操作
System.out.println(“---初始化----userId:“+userIds);
this.session?=?session;
//獲取當(dāng)前登錄用戶(hù)的id
this.userId?=?userIds;

webSocketSet.add(this);?????//加入set中
addOnlineCount();???????????//在線(xiàn)數(shù)加1
System.out.println(“有新連接加入!當(dāng)前在線(xiàn)人數(shù)為“?+?getOnlineCount());
//---------單聊-----------將用戶(hù)id和session綁定到路由表
????????//綁定之后就可以在其它地方根據(jù)id來(lái)獲取session,這時(shí)兩個(gè)用戶(hù)私聊就可以實(shí)現(xiàn)了
????????//routeTable.put(userId?session);
}

/**
?*?接受客戶(hù)端的消息,并把消息發(fā)送給所有連接的會(huì)話(huà)
?*?@param?message?客戶(hù)端發(fā)來(lái)的消息
?*?@param?session?客戶(hù)端的會(huì)話(huà)
?*/
@OnMessage
public?void?getMessage(String?message?Session?session1)?{
//?把客戶(hù)端的消息解析為JSON對(duì)象
JSONobject?jsonobject?=?JSONobject.fromobject(message);
//?在消息中添加發(fā)送日期
jsonobject.put(“date“?DATE_FORMAT.format(new?Date()));
//?-----------------------把消息發(fā)送給所有連接的會(huì)話(huà)--------------------------------
System.out.println(“來(lái)自客戶(hù)端的消息“+this.userId+“:“?+?message);
????????for(ChatServer?item:?webSocketSet){
?????????????try?{
???????????? ?//當(dāng)前用戶(hù)右側(cè)顯示,非本用戶(hù)左側(cè)顯示
???????????? ?if(this.userId.equals(item.userId)){jsonobject.put(“isSelf“?true);}
???????????? ?else{jsonobject.put(“isSelf“?false);}
????? ?//?發(fā)送JSON格式的消息
???????????? ?item.sendMessage(jsonobject.toString());
?????????????}?catch?(IOException?e)?{
?????????????????e.printStackTrace();
?????????????????continue;
?????????????}
?????????}
????????
?????????//--------------群發(fā)2-------------------
//????????for?(Session?sess?:?session.getOpenSessions())?{
//????????????if?(sess.isOpen())
//???????????????sess.getBasicRemote().sendText(msg);
//????????}

}


@OnClose
public?void?close()?{
//?添加關(guān)閉會(huì)話(huà)時(shí)的操作
webSocketSet.remove(this);??//從set中刪除
subO

?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????目錄???????????0??2017-08-26?15:17??Chat\
?????文件????????1097??2017-08-25?00:40??Chat\.classpath
?????目錄???????????0??2017-08-26?15:17??Chat\.externalToolBuilders\
?????文件?????????548??2017-08-24?23:48??Chat\.externalToolBuilders\org.eclipse.wst.jsdt.core.javascriptValidator.launch
?????文件????????1364??2017-08-24?23:56??Chat\.project
?????目錄???????????0??2017-08-26?15:17??Chat\.settings\
?????文件?????????491??2014-12-29?18:26??Chat\.settings\.jsdtscope
?????文件??????????83??2017-08-24?23:49??Chat\.settings\com.genuitec.eclipse.core.prefs
?????文件??????????76??2017-08-24?23:48??Chat\.settings\com.genuitec.eclipse.migration.prefs
?????文件?????????357??2014-12-29?18:26??Chat\.settings\org.eclipse.jdt.core.prefs
?????文件?????????456??2014-12-29?18:26??Chat\.settings\org.eclipse.wst.common.component
?????文件?????????345??2017-08-24?23:48??Chat\.settings\org.eclipse.wst.common.project.facet.core.xml
?????文件??????????49??2014-12-29?18:26??Chat\.settings\org.eclipse.wst.jsdt.ui.superType.container
?????文件???????????6??2014-12-29?18:26??Chat\.settings\org.eclipse.wst.jsdt.ui.superType.name
?????目錄???????????0??2017-08-26?15:17??Chat\WebContent\
?????目錄???????????0??2017-08-26?15:17??Chat\WebContent\meta-INF\
?????文件??????????36??2014-12-29?18:26??Chat\WebContent\meta-INF\MANIFEST.MF
?????目錄???????????0??2017-08-26?15:17??Chat\WebContent\WEB-INF\
?????目錄???????????0??2017-08-26?15:17??Chat\WebContent\WEB-INF\lib\
?????文件??????231320??2014-12-29?18:26??Chat\WebContent\WEB-INF\lib\commons-beanutils-1.8.0.jar
?????文件??????575389??2014-12-29?18:26??Chat\WebContent\WEB-INF\lib\commons-collections-3.2.1.jar
?????文件??????279193??2014-12-29?18:26??Chat\WebContent\WEB-INF\lib\commons-lang-2.5.jar
?????文件???????60841??2014-12-29?18:26??Chat\WebContent\WEB-INF\lib\commons-logging-1.1.1.jar
?????文件???????86487??2014-12-29?18:26??Chat\WebContent\WEB-INF\lib\ezmorph-1.0.6.jar
?????文件??????159123??2014-12-29?18:26??Chat\WebContent\WEB-INF\lib\json-lib-2.4-jdk15.jar
?????文件???????36575??2017-08-24?23:55??Chat\WebContent\WEB-INF\lib\websocket-api.jar
?????目錄???????????0??2017-08-26?15:17??Chat\WebContent\assets\
?????目錄???????????0??2017-08-26?15:17??Chat\WebContent\assets\css\
?????文件????????3049??2014-12-29?18:26??Chat\WebContent\assets\css\admin.css
?????文件??????304221??2014-12-29?18:26??Chat\WebContent\assets\css\amazeui.css
?????文件??????305083??2014-12-29?18:26??Chat\WebContent\assets\css\amazeui.flat.css
............此處省略163個(gè)文件信息

評(píng)論

共有 條評(píng)論