【发布时间】:2015-05-31 01:59:11
【问题描述】:
据我了解,信号 R 的美妙之处在于它负责客户端和服务器之间的“握手”,以确定它们之间的最佳通信形式(websocket、长轮询等)。我知道默认情况下它在 /signalr 路由上执行此操作。我读到在此之前,握手将通过 HTTP Get 请求完成,该请求带有一个 Upgrade/Connection 标头,指定升级到这个新连接。
在我当前的应用程序中,我们支持以 RESTful 方式处理许多 HTTP 请求。如果我们想要实时而不是以这种请求响应格式公开这些数据,那么确定是否应该使用信号 R 打开连接的最佳方法是什么?检查这些标题是否仍然足够?我只是觉得这有点多余,因为信号 R 将其抽象掉了。
如果不是这样,解决方案是让客户端在连接到正确的端点后立即专门调用集线器方法来启动流式传输?
TLDR:需要一种从 HTTP 请求打开信号 R 连接的方法,不知道最好的方法是使用自定义 HTTP 标头请求资源还是仅导航到 url 资源和让他们的客户调用一个 hub 方法。
【问题讨论】:
-
据我了解,signalr允许Server端调用client端函数,而使用http request/response是无法做到的。
-
可能有误会:服务器不是发起连接的,这是客户端的部分。
标签: c# rest http websocket signalr