推荐文章

ASP.NET Core中使用百度在线编辑器UEditor

ASP.NET Core中使用百度在线编辑器UEditor

ASP.NET Core中使用百度在线编辑器UEditor
.net core添加Area区域

.net core添加Area区域

Asp. Ce使用Area区域,可以有效的对业务进行隔离,各种业务及分工可以更灵活。在Asp. Ce中启用区域也是极简单的,比如:一个网站有前端、用户后台、管理,我们使用Area就能清晰划分每个功能板块前端:使用用默认的路由用户:使用“Users”路由管理:使用“Admin”路由1、在“Startup.cs”,添加Area路由public void Configure(IApplicationBu
ASP.NET CORE对url参数的编码

ASP.NET CORE对url参数的编码

用URL传参数的时候,用&符号连接,如果某一个参数中含"#$ ^ & + ="这些符号的时候,在另一个页面就会取不到传过来的参数。解决办法:ASP. CE:编码var url="http:www.baidu.com&text=" + Uri.EscapeDataString("(&^%$#@!!")输出:http:www.baidu.com&text=%28%2A%26%5E%25%24%23
ASP.NET Core 2.0使用NLog日志配置

ASP.NET Core 2.0使用NLog日志配置

一、新建ASP. Ce 2.0 MVC项目,使用NuGet在浏览中搜索:NLog.Web.AspCe,如下图所示:二、在项目下新建一个xml类型的nlog.config文件《?xml version="1.0" encoding="utf8"?》《nlog xmlns="http:www.nlogproject.gschemasNLog.xsd" xmlns:xsi="http:www.
asp.net core使用IHttpContextAccessor获取来源页

asp.net core使用IHttpContextAccessor获取来源页

1、在Startup文件注入IHttpContextAccesspublic void ConfigureServices(IServiceCollection services) { ... 注入HttpContextAccess services.AddSingleton《IHttpContex

WebSocket是什么东西?

日期:2018-07-29 点击:1226 来源:PB2.CN

WebSocket是一种网络通信协议。RFC6455 定义了它的通信标准。
WebSocket是HTML5开始提供的一种在单个TCP 连接上进行全双工通讯的协议。


WebSocket的出现是基于Web应用的实时性需要而产生的。这种实时的Web应用大家应该不陌生,在生活中都应该用到过,比如阿里旺旺网页版、腾讯的WebQQ等。
WebSocket通过浏览器提供的API真正实现了具备像C/S架构下的桌面系统的实时通讯能力。其原理是使用JavaScript调用浏览器的API发出一个WebSocket请求至服务器,经过一次握手,和服务器建立了TCP通讯,因为它本质 上是一个TCP连接,所以数据传输的稳定性强和数据传输量比较小。

WebSocket 协议本质上是一个基于 TCP 的协议。为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTTP 请求不同,包含了一些附加头信息,其中附加头信息”Upgrade: WebSocket”表明这是一个申请协议升级的 HTTP 请求,服务器端解析这些附加的头信息然后产生应答信息返回给客户端,客户端和服务器端的 WebSocket 连接就建立起来了,双方就可以通过这个连接通道自由的传递信息,并且这个连接会持续存在直到客户端或者服务器端的某一方主动的关闭连接。


WebSocket 客户端


var Socket = new WebSocket(url, [protocol] );


实例

// 初始化一个 WebSocket 对象
var ws = new WebSocket("ws://localhost/");
// 建立 web socket 连接成功触发事件
ws.onopen = function () {
  // 使用 send() 方法发送数据
  ws.send("发送数据");
  alert("数据发送中...");
};
// 接收服务端数据时触发事件
ws.onmessage = function (evt) {
  var received_msg = evt.data;
  alert("数据已接收...");
};
// 断开 web socket 连接成功触发事件
ws.onclose = function () {
  alert("连接已关闭...");
};



WebSocket 服务器端(asp.net core)

WebSocket 服务器端

app.Use(async (context, next) =>
{
    if (context.Request.Path == "/ws")
    {
        if (context.WebSockets.IsWebSocketRequest)
        {
WebSocket webSocket = await context.WebSockets.AcceptWebSocketAsync();
await Echo(context, webSocket);
        }
        else
        {
context.Response.StatusCode = 400;
        }
    }
});



private 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);}
}

 


这篇文档对您是否有帮助?

ASP.NET Core中使用百度在线编辑器UEditor

ASP.NET Core中使用百度在线编辑器UEditor

ASP.NET Core中使用百度在线编辑器UEditor
.net core添加Area区域

.net core添加Area区域

Asp. Ce使用Area区域,可以有效的对业务进行隔离,各种业务及分工可以更灵活。在Asp. Ce中启用区域也是极简单的,比如:一个网站有前端、用户后台、管理,我们使用Area就能清晰划分每个功能板块前端:使用用默认的路由用户:使用“Users”路由管理:使用“Admin”路由1、在“Startup.cs”,添加Area路由public void Configure(IApplicationBu
ASP.NET CORE对url参数的编码

ASP.NET CORE对url参数的编码

用URL传参数的时候,用&符号连接,如果某一个参数中含"#$ ^ & + ="这些符号的时候,在另一个页面就会取不到传过来的参数。解决办法:ASP. CE:编码var url="http:www.baidu.com&text=" + Uri.EscapeDataString("(&^%$#@!!")输出:http:www.baidu.com&text=%28%2A%26%5E%25%24%23
ASP.NET Core 2.0使用NLog日志配置

ASP.NET Core 2.0使用NLog日志配置

一、新建ASP. Ce 2.0 MVC项目,使用NuGet在浏览中搜索:NLog.Web.AspCe,如下图所示:二、在项目下新建一个xml类型的nlog.config文件《?xml version="1.0" encoding="utf8"?》《nlog xmlns="http:www.nlogproject.gschemasNLog.xsd" xmlns:xsi="http:www.
asp.net core使用IHttpContextAccessor获取来源页

asp.net core使用IHttpContextAccessor获取来源页

1、在Startup文件注入IHttpContextAccesspublic void ConfigureServices(IServiceCollection services) { ... 注入HttpContextAccess services.AddSingleton《IHttpContex