I have read through the SignalR docs and watched a few of the videos, however I can not get SignalR to host within a winforms application.
I have tried using source code off the SignalR wiki: https://github.com/SignalR/SignalR/wiki/Self-host
If you look at the "Full Sample - Hubs", what is the "server" variable? I do not understand how this works or how to convert it to C#. According to the wiki "The default SelfHost implementation is built on HttpListener and can be hosted in any kind of application (Console, Windows Service etc). "
I would like to host SignalR in C# and consume it in asp.net. Could anyone please shed some light on this for me?
The sample in the Wiki works fine.
Please install the SignalR.Hosting.Self
package using NuGet (Package Manager Console)
Install-Package SignalR.Hosting.Self
The Server
lives in the SignalR.Hosting.Self
namespace.
using System;
namespace MyConsoleApplication
{
static class Program
{
static void Main(string[] args)
{
string url = "http://localhost:8081/";
var server = new SignalR.Hosting.Self.Server(url);
// Map the default hub url (/signalr)
server.MapHubs();
// Start the server
server.Start();
Console.WriteLine("Server running on {0}", url);
// Keep going until somebody hits 'x'
while (true)
{
ConsoleKeyInfo ki = Console.ReadKey(true);
if (ki.Key == ConsoleKey.X)
{
break;
}
}
}
public class MyHub : SignalR.Hubs.Hub
{
public void Send(string message)
{
Clients.addMessage(message);
}
}
}
}
<script type="text/javascript" src="Scripts/jquery-1.7.2.js"></script>
<script src="/Scripts/jquery.signalR.js" type="text/javascript"></script>
<script src="http://localhost:8081/signalr"></script>
<script type="text/javascript">
$(function () {
// create signalr hub connection
myHub= $.connection.myHub;
// start hub connection and call the send method
$.connection.hub.start(function () {
myHub.Send('Hello');
});
});
</script>
Please leave a comment if you have additional answers
In order to make this to work for C# and ASP.NET I had to use "Cross Domain".
In the JavaScript I used:
<script type="text/javascript" src='http://localhost:8081/signalr/hubs'></script>
and added:
$.connection.hub.url = 'http://localhost:8081/signalr'
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.