是否可以将 SignalR 托管为 WCF websocket 服务的一部分,而不是作为 ASP.net 网站的一部分。我知道将消息从 Web 服务推送到 signalR 客户端,但是当从浏览器打开套接字连接时它是否也可能映射到 Web 服务契约(Contract)?
最佳答案
您可以自行托管 SignalR 服务器:
取自(https://github.com/SignalR/SignalR/wiki/QuickStart-Hubs):
入门 首先,安装以下软件包:
Install-Package Microsoft.Owin.Hosting -pre
Install-Package Microsoft.Owin.Host.HttpListener -pre
Install-Package Microsoft.AspNet.SignalR.Owin -pre
using System;
using Microsoft.AspNet.SignalR;
using Microsoft.Owin.Hosting;
using Owin;
namespace SignalR.Hosting.Self.Samples
{
class Program
{
static void Main(string[] args)
{
string url = "http://172.0.0.01:8080";
using (WebApplication.Start<Startup>(url))
{
Console.WriteLine("Server running on {0}", url);
Console.ReadLine();
}
}
}
class Startup
{
public void Configuration(IAppBuilder app)
{
// This will map out to http://localhost:8080/signalr by default
// This means a difference in the client connection.
app.MapHubs();
}
}
public class MyHub : Hub
{
public void Send(string message)
{
Clients.All.addMessage(message);
}
}
关于SignalR 作为 WCF 网络套接字服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12562859/