连接到信号WSS流,但没有得到我正在寻找的响应

问题描述 投票:0回答:1
我无法访问服务器的代码,但是我确实有参考实现,并且确实获取了pong消息和数据消息

服务器是否仅限于广播到一个会话?或一次一次会话 - 我正在与同一帐户连接,尽管auth令牌是不同的

我很困。我已经复制了参考实现的所有输入,套接字连接,正如我所说,我发送pings并恢复乒乓球,但没有数据。

注意,JWT令牌在URL(WSURL)

中传递

const websocketInstance = new WebSocket(wsUrl, { headers: { Host: "******.signalr.net", "Accept-Language": "en-GB,en;q=0.5", "Accept-Encoding": "gzip, deflate, br, zstd", "Sec-WebSocket-Version": "13", Origin: "********.com", "Sec-WebSocket-Extensions": "permessage-deflate", "Sec-WebSocket-Key": "********", Connection: "keep-alive, Upgrade", "Sec-Fetch-Dest": "empty", "Sec-Fetch-Mode": "websocket", "Sec-Fetch-Site": "cross-site", Pragma: "no-cache", "Cache-Control": "no-cache", Upgrade: "websocket", }); websocketInstance.on("open", () => {..} websocketInstance.on("message", (data) => {..} websocketInstance.on("pong", (data) => {..} websocketInstance.on("error", (error) => {..} ... }

您成功地连接到Azure Signalr并获得两个响应,但是您没有收到实际消息。 这是因为您直接通过WebSocket(

wss://

)连接,但是SignalR需要对
https://
.
typescript azure websocket signalr
1个回答
0
投票
,使用

https://

而不是

wss://


POST

从响应中提取
https://your-signalr-service.signalr.net/client/negotiate
url

    使用提取的websocket Connection。
  • 这里是示例代码:
    accessToken
  • 请参考此
  • DOC
    ,以更好地了解Azure Signalr服务。
    
    作为替代方案,您可以在处理谈判,代币和重新连接时使用
    wss:// URL
    而不是原始的Websocket。
  • 引用this
    doc1
  • doc2
了解signalr的javascript和打字端客户


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.