gpt4 book ai didi

javascript - SignalR - 从没有 SignalR 库的 javascript 连接到 websocket 服务

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:33:18 24 4
gpt4 key购买 nike

我有一个我已经开始的小型 SignalR 项目,现在它所做的只是接收一个字符串并将其回显给所有连接的用户。

我想知道的是,由于 SignalR 在我的服务器上打开了 websockets - 如何使用常规 websockets javascript 代码连接到服务? (我有理由想在没有 SignalR 库的情况下这样做)。

我看过使用 chrome 开发者工具,我发现浏览器连接的地址是:

ws://localhost:53675/signalr/connect?transport=webSockets&clientProtocol=1.4&connectionToken=YKgNxA6dhmtHya1srzPPIv6KFIYEjLTFOogXqcjPErFcKCmRdjvS2X6A2KmraW%2BrLnRUNf68gYPdOkOOgJ8yRcq4iCDm%2BbUyLejsr2NySNZBvLloWuMIAvgI6oC%2Fyt%2Ba&connectionData=%5B%7B%22name%22%3A%22ophirhubtest%22%7D%5D&tid=7

如何生成 token ?

然后,似乎客户端和服务器之间的消息只是常规的 json 格式的文本(很容易模仿):

{"C":"d-9E7D682A-A,1|E,0|F,1|G,0","S":1,"M":[]}
{"H":"ophirhubtest","M":"Echo","A":["test"],"I":0}
{"C":"d-9E7D682A-A,2|E,0|F,1|G,0","M":[{"H":"ophirHubTest","M":"printEcho","A":["You said: test"]}]}

如果我只是尝试连接而不是连接但连接很快关闭。如果我删除 token ,它会立即关闭。

是否可以“手动”连接到 WS?

最佳答案

在您可以连接到服务器之前,需要进行连接协商。这是服务器发送发送和接收消息所需的所有数据的时候。如果没有连接协商,您将无法连接到服务器。实现连接协商后,您可能已经实现了 SignalR 客户端的一半。我写了一个blog post describing SignalR protocol这应该可以帮助您了解底层的工作原理,以及为什么使用您自己的 websocket 连接到服务器并不简单(或者如果您不遵循 SignalR 协议(protocol),则根本不可能)。

编辑

SignalR 的 ASP.NET Core 版本现在允许使用裸 webSocket 连接到服务器。

关于javascript - SignalR - 从没有 SignalR 库的 javascript 连接到 websocket 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31542588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com