WebSocket在建立連線時通過@PathParam獲取頁面傳值
阿新 • • 發佈:2019-02-11
最近用Java下使用WebSocket,有一個需求,在頁面與Java後臺建立連線的時候獲取頁面上提供的引數,也就是在@OnOpen註解的方法裡面獲取一次頁面的引數,有一個很簡單的方法可以獲得。即使用@PathParam註解。
第一步:
在被websocket對映的Java類中的註解如下:
@ServerEndpoint("/websocket/{relationId}/{userCode}")
其中websocket是對映地址
/{relationId}/{userCode}分別為頁面可以傳入的兩個引數
第二步:
在該Java類中的方法中:
這樣就可以獲取第一步中的兩個引數的值(relationId和userCode)@OnOpen public void onOpen(@PathParam("relationId") String relationId, @PathParam("userCode") int userCode, Session session)
第三步:
在javascript指令碼中
var ipPort = window.location.host;
其中/AnInvestigation/websocket/1/2的“1”和“2”就是自定義的引數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'); } };
以上3步就可以將頁面的值一次性傳入Java中了。
下面是程式碼和執行截圖: