我想要一個簡單的WebSocket服務器去使用SignalR,OWIN和Azure工作者角色。不能簡單的SignalR Azure工作者角色工作
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)
{
}
}
/* ... */
}
Startup.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計算模擬器上運行在5001上。但是,如果我嘗試連接到ws://127.0.0.1:5001/signalr(或只是ws://127.0.0.1:5001)沒有迴應。爲此,我使用了兩個不同的Web套接字客戶端(兩者都是Chrome插件,並且使用其他WebSocket服務器時它們都可以正常工作)。
問題:
1)有什麼明顯的錯誤與我的設置?
2)我是否需要使用SignalR JS客戶端庫連接到SignalR服務器,或者實現WebSocket協議的任何香草客戶端是否應該能夠連接?
在嘗試使用另一個Web Socket框架(XSockets)並且在WebRole(但作爲控制檯應用程序)運行時沒有獲得任何代碼工作後,我開始認爲這與Azure DevFabric處理網絡通信。有誰知道Azure是否有一些有趣的網絡方式可能會干擾Web Socket通信?端點在那裏,它們出現在計算模擬器中,但我似乎無法連接到它們。 – tremolo