SignalR如何搭建SelfHost服务端(C#)

xiaoxiao2021-02-28  101

本文将介绍如何搭建简单的SignalR以SelfHost负载的服务器。

上一篇已经介绍了signalr的基本知识,本篇直接贴代码!!

SelfHost服务端

1、首先创建一个console控制台项目

2、代码如下:

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.AspNet.SignalR; using Owin; using Microsoft.Owin.Cors; namespace Signalr_SelfHost { class Program { static void Main(string[] args) { var uri = "http://127.0.0.1:9999"; using (Microsoft.Owin.Hosting.WebApp.Start<Startup>(uri)) { Console.WriteLine(string.Format("Server stared on {0}", uri)); Console.ReadLine(); } } } class Startup { static Hub hub; public void Configuration(IAppBuilder app) { app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); var configuration = new HubConfiguration(); configuration.EnableDetailedErrors = true; app.MapSignalR("/signalr", configuration); hub = new MyHub(); } } public class MyHub : Hub { public override Task OnConnected() { Console.WriteLine("有客户端连接"); return base.OnConnected(); } //服务端的方法,客户端可以去调用 public void Send(string message) { string name = "BG"; //调用客户端的方法sendMessage(string s1,string s2); Clients.All.SendMessage(name,message); } } }

这样一个简单的SignalR以SelfHost负载的服务端就完成了!!

SelfHost客户端

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Microsoft.AspNet.SignalR.Client; namespace ClientsConsole { class Program { static void Main(string[] args) { string url = "http://127.0.0.1:9999"; HubConnection _conn = new HubConnection(url,true); IHubProxy _proxy = _conn.CreateHubProxy("MyHub"); _conn.Start(); //创建客户端方法sendMessage,包含2个string参数,供服务端调用 _proxy.On<string, string>("sendMessage", (n, s) => { }); _conn.StateChanged += new Action<StateChange>(tgt => { if (((StateChange)tgt).NewState == Microsoft.AspNet.SignalR.Client.ConnectionState.Connected) { //在客户端调用服务器方法Send(string msg) _proxy.Invoke("send", "Hello"); } }); Console.ReadLine(); } } }

总结:搭建SignalR以SelfHost负载的服务器与客户端还是相对比较简单的。

转载请注明原文地址: https://www.6miu.com/read-62962.html

最新回复(0)