İçeriğe geç

SignalR Server Console Application

Required Packages
Powershell or Nuget Package Manager
Install-Package Microsoft.AspNet.SignalR.SelfHost
Install-Package Microsoft.Owin.Cors

Program.cs

using Microsoft.Owin.Hosting;
using System;
class Program
{
    static void Main(string[] args)
    {
        string url = "http://localhost:8080";
        using (WebApp.Start(url))
        {
            Console.WriteLine("Server runing on {0}", url);
            Console.ReadLine();
        }
    }
}

Startup.cs

using Microsoft.Owin;
using Owin;
using Microsoft.Owin.Cors;
using Microsoft.AspNet.SignalR;

[assembly: OwinStartup(typeof(ConsoleApp.Startup))]
public class Startup
{
    public void Configuration(IAppBuilder app)
    {
        // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888    
        app.UseCors(CorsOptions.AllowAll);
        var hubConfiguration = new HubConfiguration();
        hubConfiguration.EnableDetailedErrors = true;
        app.MapSignalR(hubConfiguration);
    }
}

MyHub.cs

using Microsoft.AspNet.SignalR;
using System;
using System.Threading.Tasks;
class MyHub : Hub
{
    public override Task OnConnected()
    {
        string clientConnectionId = Context.ConnectionId;
        Console.WriteLine("Client connected with " + clientConnectionId + " connetionId");
        return base.OnConnected();
    }
    public override Task OnDisconnected(bool stopCalled)
    {
        if (stopCalled)
        {
            Console.WriteLine(String.Format("Client {0} explicitly closed the connection.", Context.ConnectionId));
        }
        else
        {
            Console.WriteLine(String.Format("Client {0} timed out .", Context.ConnectionId));
        }
        return base.OnDisconnected(stopCalled);
    }
    public override Task OnReconnected()
    {
        Console.WriteLine(Context.ConnectionId + " reconnected.");
        // Add your own code here.          
        // For example: in a chat application, you might have marked the           
        // user as offline after a period of inactivity; in that case           
        // mark the user as online again.           
        return base.OnReconnected();
    }
}

GitHub: https://github.com/merterhan/signalrconsoleserver

İlk Yorumu Siz Yapın

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir