【发布时间】:2020-05-17 09:27:59
【问题描述】:
想象一下这段代码:
@page "/"
@code{
string name;
string greet;
}
@{
void sayhello()
{
greet = $"Hello, {name}";
}
}
<span>Type your name : </span>
<input Type="Text" @bind="name" />
<br/>
<button @onclick="sayhello">Say hello!</button>
<hr/>
<h1>@greet</h1>
此代码将获取用户的姓名并向用户打招呼。但它是如何工作的?这是真的? :在 Balazor WebAssembly 中,它像客户端计算机中的 c# 独立程序一样运行。但在 BlazorServer 中,它的作用相同,但在服务器中而不是在客户端计算机中,它使用信号器将更新的 UI 发送到客户端。
【问题讨论】:
-
SignalR 是一种用于在两个程序之间发送实时消息的技术。 SignalrR 集线器是维护服务器与其客户端之间的连接的服务器组件。一个简单的谷歌搜索会告诉你。这真的是你的问题,还是你有更深层次的问题?你有没有试过自己研究这些?
-
SignalR 是对 websockets 的抽象,所以你不需要在底层了解或学习它。
-
@Crowcoder 它尽可能使用 websockets,但如果需要,它也可以使用其他几种传输方式,而不需要程序员更改应用程序代码 - 这是它的一个不错的功能。
-
@ADyson,是的,我倾向于忘记这一点,因为我使用的是本世纪以来的浏览器,但这是一个很好的观点。
-
@Crowcoder true,尽管浏览器也不是唯一可以存在的 SignalR 客户端类型。因此,也许其他一些客户端也可能需要其他传输类型,具体取决于它们的编写方式/运行位置。但是,是的,您希望任何现代的东西都能支持 websocket。