zoukankan      html  css  js  c++  java
  • Singalr初学

       [HubName("djwChat")]
        public class ChatHub:Hub
        {
            public void Send(string name)
            {
                //动态表达式
                Clients.All.addMsgToPage(name);
                          
            }
    
        }

    owin配置非常重要。

    [assembly: OwinStartup(typeof(SingalRTest.Startup))]
    namespace SingalRTest
    {
    
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {           
                app.MapSignalR();
            }
        }
    }
      <appSettings>
        <add key="webpages:Version" value="2.0.0.0" />
        <add key="webpages:Enabled" value="false" />
        <add key="PreserveLoginUrl" value="true" />
        <add key="ClientValidationEnabled" value="true" />
        <add key="UnobtrusiveJavaScriptEnabled" value="true" />
        <add key="owin:AppStartup" value="SingalRTest.Startup, SingalRTest" />
        <!--<add key="owin:AutomaticAppStartup" value="true" />-->
      </appSettings>

    如果没有

    [assembly: OwinStartup(typeof(SingalRTest.Startup))],需要在appSettings里配置节点
            $(function () {
    
                //创建代理
                var chat = $.connection.djwChat;
    
                chat.client.addMsgToPage = function () {
                    //2、服务端通知客户端 do something 
                };
    
                $("#send").click(function () {
                    chat.server.send("msg");
                    //1、发送消息到服务端,调用服务端的Send方法
                });
    
                $.connection.hub.start();
    
            });
     PersistentConnection长连接类的使用方法
    public class MyConnection:PersistentConnection
        {
            protected override System.Threading.Tasks.Task OnReceived(IRequest request, string connectionId, string data)
            {
                 data = string.Format("数据是:{0} 时间是:{1}", data, DateTime.Now.ToString());
                 return Connection.Send(connectionId, data);
            }
        }

    同样是owin启动配置

    [assembly: OwinStartup(typeof(SingalRTest.Startup))]
    namespace SingalRTest
    {
    
        public class Startup
        {
            public void Configuration(IAppBuilder app)
            {
                // Any connection or hub wire up and configuration should go here 
                //app.MapSignalR();
                
                app.MapSignalR<MyConnection>("/随便写");//必须是/开头,自定义路径。
            }
        }
    }
        <script type="text/javascript">
            $(function () {
                
                var connection = $.connection('/随便写');//保持和后台自定义路径相同
                connection.received(function (data) {
                    $('#messages').append('<li>' + data + '</li>');
                });
    
                connection.start();
    
                $("#broadcast").click(function () {
                    connection.send($('#msg').val());
                });
                $("#btnStop").click(function () {
                    connection.stop();
                });
            });
    
        </script>
     
  • 相关阅读:
    微信小程序tab(swiper)切换
    微信小程序如何动态增删class类名
    Vi (Unix及Linux系统下标准的编辑器)VIM (Unix及类Unix系统文本编辑器)
    js 阻止事件冒泡和默认行为 preventDefault、stopPropagation、return false
    H5中的touch事件
    CSS3 Gradient 渐变
    CSS3动画属性Transform解读
    你所不知的 CSS ::before 和 ::after 伪元素用法
    javascript移动设备Web开发中对touch事件的封装实例
    那些过目不忘的H5页面
  • 原文地址:https://www.cnblogs.com/tgdjw/p/4609051.html
Copyright © 2011-2022 走看看