小编Alx*_*lxg的帖子

MVC核心,Web套接字和线程

我正在研究一种解决方案,它使用Web套接字协议在服务器(MVC Core Web应用程序)上发生某些事件时通知客户端(Web浏览器).我使用Microsoft.AspNetCore.WebSockets nuget.

这是我的客户端代码:

  $(function () {
    var socket = new WebSocket("ws://localhost:61019/data/openSocket");

    socket.onopen = function () {
      $(".socket-status").css("color", "green");
    }

    socket.onmessage = function (message) {
      $("body").append(document.createTextNode(message.data));
    }

    socket.onclose = function () {
      $(".socket-status").css("color", "red");
    }
  });
Run Code Online (Sandbox Code Playgroud)

加载此视图时,套接字请求会立即发送到MVC Core应用程序.这是控制器动作:

[Route("data")]
public class DataController : Controller
{
    [Route("openSocket")]
    [HttpGet]
    public ActionResult OpenSocket()
    {
        if (HttpContext.WebSockets.IsWebSocketRequest)
        {
            WebSocket socket = HttpContext.WebSockets.AcceptWebSocketAsync().Result;

            if (socket != null && socket.State == WebSocketState.Open)
            {
                while (!HttpContext.RequestAborted.IsCancellationRequested)
                {
                    var response = string.Format("Hello! Time {0}", System.DateTime.Now.ToString());
                    var bytes …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc multithreading websocket asp.net-core

6
推荐指数
1
解决办法
2106
查看次数

ASP.NET 页面仅 POST 访问

我想知道是否可以将对 ASPX 页面的访问限制为仅 http POST 请求方法?这个受限页面将用于渲染一些复杂的内容。我想将它用于 ajax 调用,该调用会将内容返回到另一个页面上的 div 中。是否可以禁用 GET 请求,以便用户不会意外地通过浏览器中的 URL 访问它?

asp.net ajax post get

2
推荐指数
1
解决办法
1571
查看次数

标签 统计

ajax ×1

asp.net ×1

asp.net-core ×1

asp.net-mvc ×1

c# ×1

get ×1

multithreading ×1

post ×1

websocket ×1