广告
返回顶部
首页 > 资讯 > 后端开发 > ASP.NET >在Asp.netcore中实现websocket通信
  • 989
分享到

在Asp.netcore中实现websocket通信

2024-04-02 19:04:59 989人浏览 安东尼
摘要

今天小试了一下在ASP.net core中使用websocket,这里记录一下: 在 Startup 类的 Configure 方法中添加 WEBSocket 中间件。 app.Us

今天小试了一下在ASP.net core中使用websocket,这里记录一下:

在 Startup 类的 Configure 方法中添加 WEBSocket 中间件

app.UseWebSockets();

它也可以传入一些参数

app.UseWebSockets(new WebSocketOptions()
{
    KeepAliveInterval = TimeSpan.FromSeconds(120),
    ReceiveBufferSize = 4 * 1024
});

添加WebSocket中间件的处理函数:

async Task WebSocketMiddleware(HttpContext context, Func<Task> next)
{
    //这里监听的是 /ws 作为地址
    if (context.Request.Path != "/ws")
    {
        await next();
        return;
    }
                                                                                        
    if (!context.WebSockets.IsWebSocketRequest)
    {
        context.Response.StatusCode = 400;
        return;
    }

    WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
    await Echo(context, webSocket);
}

在Startup 类的 Configure函数中应用该中间件。 

app.Use(WebSocketMiddleware);

最后再来完成我们的WebScoket功能函数Echo

async Task Echo(HttpContext context, WebSocket webSocket)
{
    var buffer = new byte[1024 * 4];
    WebSocketReceiveResult result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
    while (!result.CloseStatus.HasValue)
    {
        await webSocket.SendAsync(new ArraySegment<byte>(buffer, 0, result.Count), 
          result.MessageType, result.EndOfMessage, CancellationToken.None);
        result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
    }
    await webSocket.CloseAsync(result.CloseStatus.Value, result.CloseStatusDescription, CancellationToken.None);
}

到此一个简单的websocket应用就完成了,我们可以随便找一个测试webscoket的程序或在线网页测试一下了。

最后需要说明一下的时,本身asp.net core的websocket是可以在win7下跑的(来自于Kestrel内核的支持),但win7下的iis是不支持websocket反向代理的,因此如果在win7下开发或测试的时候,不要用iis来反向代理asp.Net Core程序。

到此这篇关于asp.net core实现websocket通信的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

--结束END--

本文标题: 在Asp.netcore中实现websocket通信

本文链接: https://www.lsjlt.com/news/153138.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 在Asp.netcore中实现websocket通信
    今天小试了一下在Asp.net core中使用websocket,这里记录一下: 在 Startup 类的 Configure 方法中添加 WebSocket 中间件。 app.Us...
    99+
    2022-11-13
  • 在Asp.netcore项目中使用WebSocket
    今天小试了一下在Asp.net core中使用websocket,这里记录一下: 在 Startup 类的 Configure 方法中添加 WebSocket 中间件。 app.Us...
    99+
    2022-11-13
  • 如何在golang中实现WebSocket的双向通信
    如何在 Golang 中实现 WebSocket 的双向通信WebSockets 是一种在客户端和服务器之间建立持久化连接的通信协议,它允许双向通信,而且在实时性和效率方面表现出色。在 Golang 中,我们可以使用标准库中的 net/ht...
    99+
    2023-12-18
    Golang websocket 双向通信
  • Node.js怎么实现WebSocket通信
    这篇文章主要讲解了“Node.js怎么实现WebSocket通信”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Node.js怎么实现WebSocket通信”吧!node的依赖包node中实现...
    99+
    2023-07-04
  • 基于Node.js的WebSocket通信实现
    node的依赖包 node中实现Websocket的依赖包有很多,websocket、ws均可,本文选取ws来实现,首先安装依赖 npm install ws 聊天室实例 假如A,B,C,D用户均通过...
    99+
    2022-06-04
    通信 Node js
  • 怎么用Node.js实现WebSocket通信
    本篇内容介绍了“怎么用Node.js实现WebSocket通信”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!node的依赖包node中实现W...
    99+
    2023-07-04
  • ASP.NETCore中Grpc通信的简单用法
    目录: 一、简单介绍DotnetCore3.0如何将.proto文件生成对应的服务端和客户端类二、介绍如何在服务端使用Grpc,以及Grpc需要的条件(HTTP2、TLS)三、介绍如...
    99+
    2022-11-13
  • 如何在Golang中使用WebSocket实现一个通信功能
    本篇文章给大家分享的是有关如何在Golang中使用WebSocket实现一个通信功能,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。什么是golanggolang 是Google...
    99+
    2023-06-06
  • 使用 Spring Boot 实现 WebSocket实时通信
    在开发 Web 应用程序时,我们有时需要将服务端事件推送到连接的客户端。但 HTTP 并不能做到。客户端打开与服务端的连接并请求数据,但服务端不能打开与客户端的连接并推送数据。为了解决这个限制,我们可以建立了一个轮询模式,网页会间隔地轮询服...
    99+
    2023-05-30
    spring boot websocket
  • 基于Node.js如何实现WebSocket通信
    这篇文章将为大家详细讲解有关基于Node.js如何实现WebSocket通信,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。node的依赖包node中实现Websocket...
    99+
    2022-10-19
  • 基于Node.js怎么实现WebSocket通信
    这篇“基于Node.js怎么实现WebSocket通信”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于Node.js怎么实...
    99+
    2023-06-17
  • golang WebSocket教程:如何实现实时通信
    Golang WebSocket教程:如何实现实时通信首先,让我们来介绍一下什么是WebSocket。WebSocket是一种在Web浏览器和服务器之间进行全双工通信的协议。与HTTP协议不同,WebSocket允许服务器向客户端推送数据,...
    99+
    2023-12-17
    golang WebSocket教程:实时通信
  • 怎么用websocket实现前后端通信
    这篇文章主要介绍了怎么用websocket实现前后端通信,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 websocket通信是很好玩的,...
    99+
    2022-10-19
  • 如何使用PHP和WebSocket实现实时通信
    随着互联网技术的不断发展,实时通信已经成为了日常生活中不可缺少的一部分。利用WebSockets技术可以实现高效、低延迟的实时通信,而PHP作为互联网领域使用最广泛的开发语言之一,也提供了相应的WebSocket支持。本文将为大家介绍如何使...
    99+
    2023-12-17
    PHP websocket 实时通信
  • SpringBoot整合websocket实现即时通信聊天
    目录一、技术介绍1.1 客户端WebSocket1.1.1 函数1.1.2 事件1.2 服务端WebSocket二、实战 2.1、服务端2.1.1引入maven依赖2.1....
    99+
    2022-11-13
  • nodejs如何结合socket.io实现websocket通信功能
    这篇文章主要介绍nodejs如何结合socket.io实现websocket通信功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!具体如下:因为项目中有需要实时获取后台数据的场景,之...
    99+
    2022-10-19
  • ASP.NETCore通用主机实现托管服务
    前文介绍了.Net core的通用主机的配置,在基础配置完成后,下一步就是注册我们的后台任务了。.net core提供了一个通用的后台服务接口IHostedService,称为托管服...
    99+
    2022-11-13
  • WebSocket与WebRTC在实时音视频通信中的协作应用
    概述:随着互联网的迅速发展,实时音视频通信已经成为许多应用领域的重要需求,例如在线会议、在线教育、远程医疗等。为了满足这些需求,开发人员需要选择最适合的技术来实现高质量的实时音视频通信。本文将介绍WebSocket与WebRTC的协作应用,...
    99+
    2023-10-21
    websocket WebRTC 实时音视频通信
  • react使用websocket实时通信方式
    目录使用websocket实时通信创建公共组件在react组件中的使用websocket在不同情形下的使用1.在react中使用websocket2.websocket在小程序中使用...
    99+
    2022-11-13
  • Websocket通信协议在数字孪生中的应用
    目录写在前面数字孪生中的通讯协议Websocket 是什么Websocket 配置基于 Node.js 的 Websocket 服务器搭建基于Vue 的 Websocket 客户端搭...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作