【发布时间】:2016-06-09 19:44:11
【问题描述】:
我在网上做了很多研究,但找不到解决方案。我在 WebAPI 后端创建了一个 SignalR 集线器并启用了 CORS 功能。
我还有一个客户端 (Ionic) 应用尝试连接到 SignalR 集线器以进行实时聊天。问题是当混合应用程序尝试连接到 SignalR 集线器时,我得到了
ConnectionId 的格式不正确。
我在 SignalR 集线器上收到 OnDisconnected 事件,但不是 OnConnected 事件!
这是我的客户端代码(离子):
- localhost:64965/signalr 是我的 SignalR 集线器
- SignalR 代理也在 localhost:64965/signalr/hubs 上生成
var signalr_chatHub = $.connection.ChatHub;
signalr_chatHub.client.welcomeMessage = function (message) {
console.log('WelcomeMessage', message);
};
$.connection.hub.url = "http://localhost:64965/signalr";
$.connection.hub.logging = true;
$.connection.hub.start().done(function () {
console.log('signal connection connected');
}).fail(function (err) {
console.log('Could not Connect!', err);
});
Chrome 控制台错误:
public class ChatHub : Hub<IChat>
{
public override Task OnConnected()
{
var connectionId = Context.ConnectionId;
return base.OnConnected();
}
public override Task OnDisconnected(bool stopCalled)
{
var connectionId = Context.ConnectionId;
return base.OnDisconnected(stopCalled);
}
public override Task OnReconnected()
{
return base.OnReconnected();
}
public void WelcomeMessage()
{
Clients.All.NewMessage("Welcome");
}
}
【问题讨论】:
-
我也遇到同样的错误,但仍然找不到合适的解决方案。
标签: asp.net-web-api ionic-framework signalr