基於java的websocket實現

2021-08-20 07:50:13 字數 2218 閱讀 1709

基於tomcat的websocket實現中,如果會針對乙個使用者高頻的傳送訊息的情況下,websocket自帶的非同步傳送其實一點卵用都沒有,所以,沒辦法,自己控制websocket的併發傳送嘍,不多說,直接貼**

1.基礎的websocket快取物件,這個玩意兒每乙個使用者進來都會生成乙個

public class 

websocketmessage

public

session getsession

() public void

setsession

(session session

) public

long getroomid

() public void

setroomid

(long roomid) }

2:websocket的實現

@serverendpoint

(value =

"/client/socket/flop/"

)public class

websocket

public static

concurrenthashmap

<

long

, roommessage

>

getroomid_roommessage

() public static

concurrenthashmap

<

long

, eventmessage

>

getevent_eventmessage

() /**

* 建立乙個連線

* @param

session

當前使用者

session

*/@onopen

public void

onopen

(session session

, @pathparam

("userid"

) long userid

)else

catch

(ioexception e) }

}/**

* 收到客戶端訊息後呼叫的方法

* @param

message

客戶端傳送過來的訊息

*/@onmessage

public void

onmessage

(string message

,session session

) throws

ioexception

/*** 給某乙個使用者集合傳送訊息

* @param userids

使用者集合

* @param message

需要傳送的訊息

*/public static void

sendmessage

(set

<

long

> userids,

string message)

catch

(ioexception e)

flopwebsocketmessage.

getlock

().writelock

().unlock

();}

}}

/***

發生錯誤時呼叫

* @param

error

錯誤資訊

*/@onerror

public void

onerror

(throwable error

)/**

* 連線關閉呼叫的方法

*/@onclose

public void

onclose

(session session

)session_userid

.remove

(session

);atomicinteger

.addandget(-1

);system

.out

.println("

連線關閉

:"+userid);}

}注意:

千萬不要在除了onopen方法外使用@pathparam("userid")從連線的鏈結中獲取攜帶的引數,絕對回給你意想不到的驚喜

基於Java的快速排序

快速排序 基本思想 快速排序就是通過將乙個陣列分為兩個子陣列,然後通過遞迴呼叫自身為每乙個字陣列進行快速排序實現 通常劃分關鍵字 基準元素 的標準 第乙個元素或者最後乙個元素 author wanglong 2016 9 24 下午2 18 29 public class quicksort els...

基於java的快速排序

因為上次面試師兄讓我上機寫個快排的演算法,我沒有寫出來,很尷尬,今天把快排實現了一遍,以後遇到就不會掉這個坑了。package testt public class fastsort int start 0 int end a.length 1 sort a,start,end for int i ...

基於ArcGIS的Java應用開發

綜覽 what is the web adf 什麼是web adf ide integration 整合開發環境整合 adf web controls adf web 控制 common api 普通api overview of tasks and the task framework 綜覽tas...