我正在尝试使用 SignalR、OWIN 和 Azure Worker Roles 构建一个简单的 WebSocket 服务器。
WorkerRole.cs:
public class WorkerRole : RoleEntryPoint
{
public override void Run()
{
string url = "http://" + RoleEnvironment.CurrentRoleInstance.InstanceEndpoints["MyEndpoint"].IPEndpoint;
using (WebApp.Start<Startup>(url))
{
Trace.WriteLine(String.Format("Server running on {0}", url));
}
while (true)
{
}
}
/* ... */
}
启动.cs:
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
MyHub.cs:
public void Send(string name, string message)
{
Clients.All.addMessage(name, message);
}
端点“MyEndpoint”在服务中定义为 http、公共和私有端口 5001。
启动服务后,它在 Azure Compute Emulator 下显示为在 5001 上运行。但是,如果我尝试连接到 ws://127.0.0.1:5001/signalr(或只是 ws://127.0.0.1:5001)那里是没有反应。为此,我使用了两个不同的 Web 套接字客户端(两者都是 Chrome 插件,并且它们都可以使用其他 WebSocket 服务器正常工作)。
问题:
1) 我的设置有什么明显的问题吗?
2)我是否需要使用 SignalR JS 客户端库连接到 SignalR 服务器,或者任何实现 WebSocket 协议的普通客户端都可以连接?