我试图实现一些简单的 SignalR 功能。我查阅了一些教程,并能够在合理的时间内从服务器触发 javascript 代码。然而,反过来,似乎对我不起作用。每当我尝试从 javascript 调用服务器方法时,客户端方法都会触发,向服务器发送请求,但服务器端没有任何反应。该请求具有正常的 200 状态码,但使用 firebug 我得到了以下 xml 返回:
XML-parseError:找不到元素位置:moz-nullprincipal:{b526d81f-4593-4eac-b81d-ebc4a3ef6a39} 行号 1,Col 1:^
我不知道这是否与它有关,但这是我得到的唯一反馈。
枢纽:
namespace MusicSharing
{
public class PlayerHub : Hub
{
public string Connect(string userName)
{
var test = userName;
return userName;
}
}
}
添加脚本参考:
<script type="text/JavaScript" src="Scripts/jquery-2.0.3.min.js"></script>
<script type="text/javascript" src="Scripts/jquery.signalR-2.0.0.min.js"></script>
<script src="http://localhost:50287/signalr/hubs"></script>
的JavaScript:
var chat = $.connection.playerHub;
$.connection.hub.start().done(function () {
chat.server.connect("testing");
});
启动:
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(MusicSharing.Startup))]
namespace MusicSharing
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
}
}
这基本上是我关于 SignalR 的所有代码。我错过了什么还是..?
编辑: ping 功能按预期工作;回应是乒乓球
编辑 2: onConnect 也被解雇,所以它在连接中没有任何内容。它似乎只是不想触发自定义方法。