我需要從 Go 連接到 SignalR 服務(wù)器。我一直在嘗試使用一些庫和文章來幫助我:https://github.com/x2v3/signalrhttps://github.com/devigned/signalr-gohttps://www.derpturkey.com/signalr-is-an-abomination-how-to-connect-using-raw-websockets/https://blog.3d-logic.com/2015/03/29/signalr-on-the-wire-an-informal-description-of-the-signalr-protocol/問題是我需要從不同的端口檢索令牌。我的 SignalR 服務(wù)器地址是https://server:10446/endpoint,但我需要從中檢索我的令牌https://server:10443/connect/token,這與正常的 SignalR 協(xié)議不同。我能夠得到我的令牌。并且能夠獲得以下響應(yīng)的協(xié)商步驟:{ "connectionId": "JkOfCC0JykJ8hfzm8jd53w", "availableTransports": [ { "transport": "WebSockets", "transferFormats": [ "Text", "Binary" ] }, { "transport": "ServerSentEvents", "transferFormats": [ "Text" ] }, { "transport": "LongPolling", "transferFormats": [ "Text", "Binary" ] } ] }然后我嘗試通過使用 gorilla websockets 進(jìn)行 websocket 連接來建立連接:wss://server:10446/endpoint?transport=WebSockets&id=${ConnectionIDFromNegotiate}&connectionData=[{\"name\":\"HubName\"}]&access_token=${MyRetrievedToken}此時(shí),我收到一條回復(fù)說101,升級到 websocket。但是,從這一刻起,我無法繼續(xù)握手。我正在向服務(wù)器發(fā)送消息,但除了 15-20 秒后握手中止之外,我沒有得到任何響應(yīng)。這是我用來連接和發(fā)送握手消息的代碼: ws, resp, err := websocket.DefaultDialer.Dial(u.String(), nil) if err != nil { return nil, err } if err = ws.WriteMessage(websocket.TextMessage, []byte(`{"protocol": "json","version": 1}`)); err != nil { return nil, err }任何想法都會受到熱烈歡迎:)
- 1 回答
- 0 關(guān)注
- 167 瀏覽
添加回答
舉報(bào)
0/150
提交
取消