SignalR的简单使用(二)

简介: 原文:SignalR的简单使用(二)  之前提到SignalR代理在网页,通过生成的Js来完成相关的功能。但我不禁想一个问题, 难到SignalR的服务端就能寄存在web端吗,通过访问网页能方式才能启动服务,还有客户端 也只能在web端吗?经过看官网的教程得到 了结论,两者的答案都是否定的。
原文: 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,时间有限,日后发现更好的

办法会及时更新。

 

目录
相关文章
|
SQL 存储 JSON
EarthChat SignalR原理讲解
EarthChat SignalR原理讲解
114 3
EarthChat SignalR原理讲解
|
C#
如何使用MASA.Blazor
如何使用MASA.Blazor
130 0
QWebEngineView简单使用
QWebEngineView是提供一个访问web页面的widget,这里是一个简单的使用代码
168 0
ApplicationEventPublisher的简单使用
ApplicationEventPublisher的简单使用
414 0
MPPlayer的简单使用
MPPlayer的简单使用
204 0
|
Web App开发 存储 监控
【ChromeDevTool】Performace的简单使用
【ChromeDevTool】Performace的简单使用
113 0
【ChromeDevTool】Performace的简单使用
|
开发框架 .NET 开发工具
SignalR 2.x入门(一):SignalR简单例子
SignalR 2.x入门(一):SignalR简单例子
185 0
SignalR 2.x入门(一):SignalR简单例子
|
JavaScript
SignalR简单Demo
  我们实现一个简单的消息通知的Demo    在NuGet中添加SignalR引用 install-package Microsoft.AspNet.SignalR  然后我们创建一个类来引用Hub类 namespace SignalRDemo.
1286 0
|
JavaScript 前端开发 .NET
SignalR
原址: http://www.cnblogs.com/shanyou/archive/2012/07/28/2613693.html SignalR是什么?     SignalR是一个继承的客户端与服务器库,基于浏览器的客户端和基于ASP.NET的服务器组件可以借助它来进行双向多步对话,换句话说,该对话可不受限制的进行单个无状态请求/响应数据交换;它将继续,直到明确关闭。
1126 0