zoukankan      html  css  js  c++  java
  • SignalR的简单使用(二)

      之前提到SignalR代理在网页,通过生成的Js来完成相关的功能。但我不禁想一个问题,

    难到SignalR的服务端就能寄存在web端吗,通过访问网页能方式才能启动服务,还有客户端

    也只能在web端吗?经过看官网的教程得到 了结论,两者的答案都是否定的。

    关于上一篇的hub名第一个为小写的问题,还有调用客户端和服务端方式的问题,后面的教程

    提到,这些名字都是用驼峰命名法的,即使定义时收字母是大写,调用时首字母小写也能调到。

    1.客户端

    SignalR的客户端可是DOTNET下所有的客户端,包括windowsForm、WPF等。

    下列以winform为例说明问题,在DOTNET客户端实现SignalR的客户端需要添加

    组件Microsoft.AspNet.SignalR.Client。

    1.1新建Hub连接实例 HubConnection hubConnection=new HubConnection("uri");

    其中url为SignalR的寄宿地址。这里仍然是寄宿在web端。

    2.新建Hub代理实例 IHubProxy hubProxy=hubConnection.CreateHubProxy("myHub");

    其中myHub为自定的Hub类。

    3.通过代理实例注册客户端实例hubProxy.On("functionName",()=>{MessageBox.Show("可以");});

    其中functionName为方法名,后面的为Lamda表达式表示方法体。

    4.开启连接 hunConnection.Start();

    5.调用服务端方法 hubProxy.Invoke("send");

    其中send为服务端方法名,首字母也遵循驼峰命名法。

    第二个参数是方法的参数,这里没传参数。

    2.服务端--让服务端寄宿在DOTNET客户端

    这里仍然以Winform为例说明问题。

    2.1.引入组件Microsoft.AspNet.SignalR.SelfHost和Microsoft.Owin.Cors。

    2.2.新建Startup类,用于配置Hub,代码如下

     class Startup
        {
            public void Configuration(IAppBuilder app)
            {
    
                app.UseCors(CorsOptions.AllowAll);
                app.MapSignalR();
    

    2.3.新建集线器类,用户hub的服务端,处理业务逻辑。

     public class MyHub : Hub
        {
            public void Send()
            {
                Clients.All.addMessage();
    
            }
    
        }
    

    2.4.定义一个字符串,用作hub服务端的web地址。例如:

     string url = "http://localhost:61020/"
    

    2.5开启连接 

     WebApp.Start(url);
    

    这个方法的内部会去执行Startup类的Configuration方法配置Hub。

    和直接生成的集线器类一直,只是这里寄宿在的Winform上。

    当然这里还是要执行Winform才能运行SignalR,时间有限,日后发现更好的

    办法会及时更新。

  • 相关阅读:
    面试只要问到分布式,必问分布式锁
    Java编程中忽略这些细节,Bug肯定找上你
    不止承上启下,带你了解工业物联网关
    论文解读二十七:文本行识别模型的再思考
    并发高?可能是编译优化引发有序性问题
    论文解读丨LayoutLM: 面向文档理解的文本与版面预训练
    SQL优化老出错,那是你没弄明白MySQL解释计划
    SQL反模式学习笔记1 开篇
    SQL Server中自定义函数:用指定的分隔符号分割字符串
    .NET软件开发与常用工具清单
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6637715.html
Copyright © 2011-2022 走看看