什么是WebSocket 和 SignalR

一、概要

WebSocket 和 SignalR 都是用于实现实时双向通信的技术,但它们有一些不同之处。

1. **WebSocket**:

WebSocket 是一种在单个 TCP 连接上提供全双工通信的协议。它通过在客户端和服务器之间建立持久连接,实现了双向通信,可以在客户端和服务器之间发送消息,而不需要频繁地创建和关闭连接。WebSocket 的主要特点包括:

- 双向通信:WebSocket 允许客户端和服务器之间实现双向通信,这使得实时应用程序开发变得更加简单和高效。

- 持久连接:WebSocket 在初始握手后,保持持久连接,避免了每次通信都需要重新建立连接的开销。

- 较低的开销:相比传统的 HTTP 请求,WebSocket 通信的开销较低,因为不需要频繁地建立和关闭连接。

WebSocket 是一种底层协议,它可以与任何编程语言和框架一起使用。客户端可以使用 JavaScript 中的 WebSocket API,而服务器端需要实现对 WebSocket 协议的支持。

2. **SignalR**:

SignalR 是由 Microsoft 开发的 ASP.NET Core 框架中的一个库,用于实现实时双向通信。它使用了多种传输方式(包括 WebSocket、Server-Sent Events(SSE)、长轮询等),以确保在不同环境下都能提供实时通信的能力。SignalR 的主要特点包括:

- 跨平台支持:SignalR 可以在多种客户端和服务器环境中运行,包括 Web、移动设备和桌面应用程序。

- 自适应传输:SignalR 使用多种传输方式,自动选择最佳传输方式以适应不同的客户端和服务器环境。

- 高级 API:SignalR 提供了高级的 API,使开发实时应用程序更加简单和方便。它允许你定义服务器到客户端和客户端到服务器的消息传递方式,同时处理连接管理和错误处理。

- 扩展性:SignalR 支持水平扩展,可以在多个服务器节点上处理实时通信,从而满足大规模应用程序的需求。

SignalR 是一个高级框架,它封装了底层通信细节,使实时应用程序的开发更加方便。它可以在 ASP.NET Core 服务器端和 .NET Core、JavaScript 等多种客户端环境中使用。

总结:

- WebSocket 是一种底层的协议,它提供了持久化的、双向的通信,可以在单个 TCP 连接上实现全双工通信。

- SignalR 是一个高级的实时通信框架,它建立在 WebSocket 和其他传输方式之上,提供了更高级的 API 和跨平台支持,使实时应用程序的开发更加方便。

二、SignalR基本使用

需要分别编写服务器端Hub和前端代码

1.创建WebApi项目,创建一个继承Hub的类

什么是WebSocket 和 SignalR_第1张图片

 2.编写Startup代码

 

 3.编写一前端代码

 

 

你可能感兴趣的:(websocket,网络协议,网络)