SignalR没有命中OnConnected并给出Newtonsoft.Json.JsonReaderException

时间:2014-03-06 17:33:50

标签: javascript asp.net asp.net-mvc asp.net-mvc-4 signalr

我正在尝试在我的ASP.NET MVC站点和Javascript客户端设置SignalR。

这是我的客户:

@section scripts{
<script src="~/Scripts/jquery.signalR-2.0.2.min.js"></script>
<script type="text/javascript">
    $(function () {
        var connection = $.connection('/MY_ENDPOINT');

        connection.received(function (data) {
            $('#chatArea').append('>>' + data + "\r\n");
        });


        connection.start().done(function () {
            $("#send").click(function () {
                connection.send($('#msg').val());
                $("#msg").val("");
            });
        });

        connection.error(function (e) {
            console.log(e);
        });

    });
</script>
}

当然,我有相应的HTML元素chatAreamsg。在服务器中,这就是我所做的:

  • 通过NuGet安装SignalR(最新版本,2.0.2)。
  • 在启动配置中添加app.MapSignalR("MY_ENDPOINT", new Microsoft.AspNet.SignalR.HubConfiguration());,确保在注册auth方法之前调用它。
  • 我已将PersistentConnection子类化,并覆盖了OnConnectedOnReceived种方法。

然而,当我运行我的应用程序并导航到该页面时,我可以看到我的端点的negotiateconnect方法被调用,它们都返回OK(HTTP 200)。我尝试通过单击“发送”按钮使用网页发送任何内容,在服务器端我收到此错误:

A first chance exception of type 'Newtonsoft.Json.JsonReaderException'
occurred in Newtonsoft.Json.dll

Additional information: Unexpected character encountered while 
parsing value: a. Path '', line 0, position 0.

导致此错误的原因是什么?

更新:我还有一个带有SignalR-ObjC框架的iOS应用程序,我可以连接。但是,当我尝试通过它发送任何数据时,我得到了:

2014-03-06 19:39:39.853 Tanisalim[54987:70b] Websocket error: Error Domain=AFNetworkingErrorDomain Code=-1011 "Request failed: internal server error (500)" UserInfo=0xade84e0 {NSErrorFailingURLKey=http://10.211.55.3/api/socket/send?transport=longPolling&connectionData=(null)&connectionToken=xybYQ8ItTN0IWUbyrosuHy%2F3jN0krIyHLO6b6Gq8VdC3orwRRGkVSIgtYkNQINVLhRMW77cX%2BU2LiHxoe0eDE3ZumT7JrObJcQ%2FXyHiP25%2BQy%2BZizHEHbsPyBBomERoI, NSLocalizedDescription=Request failed: internal server error (500), NSUnderlyingError=0xade1290 "Request failed: unacceptable content-type: text/html"

但是,没有服务器端断点被击中。

0 个答案:

没有答案