1 回答

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以在初始 WebSocket 握手中將自定義標(biāo)頭發(fā)送到 Web Socket 后端。您可以按照以下格式將其設(shè)置為客戶端握手請求。
websocket.custom.header.<required-header-name>
例如:如果預(yù)期的標(biāo)頭是 X-JWT-Assertion,則應(yīng)發(fā)送的標(biāo)頭是
websocket.custom.header.X-JWT-Assertion
此功能支持是從 API Manager v2.6.0 添加的
您不能在此處使用中介序列,因?yàn)槠溆嗤ㄐ攀鞘褂?ws 框架完成的。
添加更多信息。
下面是一個(gè)基于 netty 的 Web 套接字客戶端示例,可用于與部署在 API 管理器中的 WS API 進(jìn)行通信。[1]
授權(quán)標(biāo)頭在 Handshake 中設(shè)置如下。
final WebSocketClientHandler handler = new WebSocketClientHandler(
WebSocketClientHandshakerFactory.newHandshaker(
uri, WebSocketVersion.V13, null, false, new DefaultHttpHeaders()
.add("Authorization", "Bearer e2238f3a-e43c-3f54-a05a-dd2e4bd4631f")));
此 Authorization 標(biāo)頭用于通過 API Manager 進(jìn)行身份驗(yàn)證。如果您需要發(fā)送自定義標(biāo)頭,您可以通過修改上面的示例來添加另一個(gè)標(biāo)頭,如下所示。
DefaultHttpHeaders headers = new DefaultHttpHeaders();
headers.add("Authorization", "Bearer e2238f3a-e43c-3f54-a05a-dd2e4bd4631f");
headers.add("websocket.custom.header.X-WS-UserName", "bob");
final WebSocketClientHandler handler = new WebSocketClientHandler(
WebSocketClientHandshakerFactory.newHandshaker(
uri, WebSocketVersion.V13, null, false, headers));
此標(biāo)頭將發(fā)送到后端,
X-WS-UserName : bob
[1] https://docs.wso2.com/download/attachments/57748790/sample-ws-client.zip?version=2&modificationDate=1484568275000&api=v2
添加回答
舉報(bào)