HTTP 和 SignalR

Posted

技术标签:

【中文标题】HTTP 和 SignalR【英文标题】:HTTP and SignalR 【发布时间】:2015-05-27 03:47:01 【问题描述】:

我最近正在学习 .Net 中的 Web 套接字,并且刚刚发现 SignalR,就要使用的连接的抽象而言,这似乎好得令人难以置信,而且似乎有一些不同语言的信号器客户端太棒了。

在我当前的项目中,通过 RESTful API 公开了不同的资源,根据我对 websockets 的理解,客户端需要通过 HTTP 请求/响应升级到 web socket 连接。 signalR 是否处理所有正在进行的握手?

如果来自 GET 请求的初始请求/响应来检索某个资源,但他们选择升级到套接字连接,服务器是否会给他们任何类型的响应,除了响应说它承认打开网络是套接字连接还是在该特定资源的信息实时更新之前发生的所有握手?

您认为 signalR 是否具有可扩展性,而不是通过像 STOMP 这样有大量客户端库的协议来实现?

【问题讨论】:

【参考方案1】:

你把事情弄得太复杂了。使用signalr的一个典型例子是:

    页面加载时使用 javascript 连接到信号服务器的 html 文件。我们称之为信号器客户端。

    用 c# 编写的信号器服务器。它可以是 Winform 或控制台或服务。

    signalr Server 可以调用位于同一服务器,甚至不同服务器中的任何 dll,或 webservices 或 webapi。

然后,客户端可以调用信号器服务器中定义的任何函数。服务器可以为特定客户端或客户端组调用客户端中定义的任何函数。

此外,客户端 x 也可以调用客户端 y 函数。

您实际上可以忘记 Web 套接字,signalr 为您选择最合适的传输协议。如果在服务器和客户端都可用,它将选择 Web 套接字。

【讨论】:

以上是关于HTTP 和 SignalR的主要内容,如果未能解决你的问题,请参考以下文章

.net后端使用SignalR定时向前端vue推送消息

c# 怎么连接wss

HTTP的长链接和短链接以及HTTP1.0HTTP1.1HTTP2.0

HTTP1.0和HTTP1.1和HTTP2.0的区别

HTTP1.0和HTTP1.1和HTTP2.0的区别

HTTP协议HTTP请求和响应