SignalR核心和接收消息



如何向集线器的所有客户端发送消息有区别吗?

例如JS:

hubConnection.invoke("Send", message);

或者可以通过Fetch将请求与消息的文本一起发送到"/聊天;adress,然后在控制器的主体中进行检查。因此,在一条消息添加到数据库并发送到客户端后,如下所示:

JS,请求控制器地址:

async function postData() {
let message = document.getElementById("message").value;
const response = await fetch('/Home/Index', {
method: 'POST', 
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},

body: "message=" + message 
});

控制器代码:

[HttpPost]
public async Task<IActionResult> Index(string message)
{
// Here your logic
// ************
//------------------
await _hubContext.Clients.All.SendAsync("RecieveMessage", message);
return new EmptyResult();           
}

第二种发送消息的方式值得吗?还是更容易像第一种方式那样通过JS发送消息,并另外向数据库发送另一个请求?

第二种发送消息的方式值得吗?还是更容易像第一种方式那样通过JS发送消息,并另外向数据库发送另一个请求?

如果你只想交换简单的&客户端和集线器服务器之间的小消息(可以在集线器方法中添加到DB(,第一种方法更好,它不需要额外的HTTP请求到控制器操作。

相关内容

最新更新