zoukankan      html  css  js  c++  java
  • 一、ASP.NET Iframework_SignalR永久连接类(v2)

    一、新建项目,选MVC项目默认 添加mvc文件夹和核心引用

     二、添加SignaIR包

    SignalR的准备:NuGet包管理器搜索:工具——>库程序包管理器——>Microsoft.AspNet.SignalR 或者 工具——>库程序包管理器——>程序包管理器控制台 Install-Package Microsoft.AspNet.SignalR。

    三、新建startup文件(在App_Start目录内),用来启动SignalR

     选择常规-->选择OWIN Startup类-->修改名字: StartupSignalR.cs

    StartupSignalR.cs内添加 永久链接类的配置;//启动SignalR --详情进入文件类查看

     StartupSignalR.cs

    using System;
    using System.Threading.Tasks;
    using demo1.HubSignalR; //一、这个是集线器引用命名空间
    using Microsoft.Owin;
    using Owin;
    [assembly: OwinStartup(typeof(demo1.App_Start.StartupSignalR))]
    namespace demo1.App_Start
    {
        public class StartupSignalR
        {
            public void Configuration(IAppBuilder app)
            {
                // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888
                //二、(SignalR永久连接类(v2)的配置,在前端调用)对应 public class HubConnection : PersistentConnection  中继承的HubConnection类
                app.MapSignalR<HubConnection>("/HubSignalR/HubConnection");
            }
        }
    }

    demo1.HubSignalR

    using Microsoft.AspNet.SignalR;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Web;
    
    namespace demo1.HubSignalR
    {
        public class HubConnection : PersistentConnection
        {
            protected override Task OnConnected(IRequest request, string connectionId)
            {
                return Connection.Send(connectionId, "Welcome!");
            }
            protected override Task OnReceived(IRequest request, string connectionId, string data)
            {
                return Connection.Broadcast(data);
            }
        }
    }

     四、客户端代码(新建Index控制器并添加视图,视图代码如下:)

    @{
        Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
        <meta name="viewport" content="width=device-width" />
        <title>PersistentConnection</title>
    
        <!--引用JQ库. -->
        <script src="~/scripts/jquery-1.6.4.min.js"></script>
        <!--引用SignalR库. -->
        <script src="~/scripts/jquery.signalR-2.3.0.min.js"></script>
    
        <script type="text/javascript">
            $(function () {
    
                // 声明PersistentConnection连接
                var connection = $.connection("/HubSignalR/HubConnection");
    
                $('#displayname').val(prompt('Enter your name:', ''));
                $("msg").focus();
    
                // 接收内容
                connection.received(function (data) {
                    $('#messages').append('<li>' + data + '</li>');
                });
    
                // 开启连接
                connection.start().done(function () {
                    $("#broadcast").click(function () {
    
                        // 发送内容
                        connection.send($('#displayname').val() + '' + $('#msg').val());
                    });
                });
    
            });
        </script>
    </head>
    <body>
        <input type="text" id="msg" />
        <input type="button" id="broadcast" value="broadcast" />
        <input type="hidden" id="displayname" />
        <ul id="messages"></ul>
    </body>
    </html>
  • 相关阅读:
    face-morpher过程函数分析
    python,在路径中引用变量的方法
    【django学习】request.POST与request.POST.get两者主要区别
    微信小程序wx.uploadFile的两个坑
    python PIL/cv2/base64相互转换
    OpenCV-Python cv2.imdecode()和cv2.imencode() 图片解码和编码
    cv2.imread()
    详解Ubuntu Server下启动/停止/重启MySQL数据库的三种方式(ubuntu 16.04)
    python使用post请求发送图片并接受图片
    前端 img标签显示 base64格式的 图片
  • 原文地址:https://www.cnblogs.com/fger/p/11577162.html
Copyright © 2011-2022 走看看