1. 程式人生 > >WebSocket在建立連線時通過@PathParam獲取頁面傳值

WebSocket在建立連線時通過@PathParam獲取頁面傳值

最近用Java下使用WebSocket,有一個需求,在頁面與Java後臺建立連線的時候獲取頁面上提供的引數,也就是在@OnOpen註解的方法裡面獲取一次頁面的引數,有一個很簡單的方法可以獲得。即使用@PathParam註解。

第一步:

在被websocket對映的Java類中的註解如下:

@ServerEndpoint("/websocket/{relationId}/{userCode}")

其中websocket是對映地址

/{relationId}/{userCode}分別為頁面可以傳入的兩個引數

第二步:

在該Java類中的方法中:

@OnOpen
public void onOpen(@PathParam("relationId") String relationId,
			@PathParam("userCode") int userCode, Session session) 
這樣就可以獲取第一步中的兩個引數的值(relationId和userCode)

第三步:

在javascript指令碼中

var ipPort = window.location.host;
Chat.initialize = function() {
		if (window.location.protocol == 'http:') {
			Chat.connect('ws://' + ipPort
					+ '/AnInvestigation/websocket/1/2');
		} else {
			Chat.connect('wss://' + ipPort
					+ '/AnInvestigation/websocket/1/2');
		} 
	};
其中/AnInvestigation/websocket/1/2的“1”和“2”就是自定義的引數

以上3步就可以將頁面的值一次性傳入Java中了。

下面是程式碼和執行截圖: