JDB*_*Bet 19 webserver servicestack web signalr
是否可以在服务堆栈项目中使用SignalR?我们目前正在为REST Web API使用服务堆栈.我们总体上对它的架构,灵活性等感到高兴.现在我们正在探索使用事件驱动或推送技术(与状态轮询相比)与我们的呼叫客户端进行通信的方法.我应该注意到,我们目前使用AppHostHttpListenerBase(在IIS内部托管)在Windows服务中托管我们的API.
是否有可能配置一个专门的路由,以某种方式传递给SignalR Hub,所以这两个可以并存?例如,它http://localhost:8000/api/live/jobs/jobid会击中SignalR代码,但http://localhost:8000/api/jobs/jobid会路由到当前基于DTO的服务堆栈代码.
PS - 我们希望继续以自主模式托管,因为我们喜欢移植到Mono并在Linux上运行的灵活性(与IIS绑定).
SignalR 提供使用 OWIN 构建的自主机选项。
我注意到 Service Stack很快也会有一个 OWIN 托管实现,以防您无法添加 SignalR。
然后,您可以使用Firefly之类的工具轻松托管应用程序的两个部分,而无需将自己束缚于任何一台服务器实现。
以下是自主机启动代码供参考:
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://localhost:8080";
using (WebApplication.Start<Startup>(url))
{
Console.WriteLine("Server running on {0}", url);
Console.ReadLine();
}
}
}
class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapHubs();
}
}
public class MyHub : Hub
{
public void Send(string message)
{
Clients.All.addMessage(message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3345 次 |
| 最近记录: |