在 ASP.net MVC 信号 R 中连接客户端服务器

Connecting Client Server in ASP.net MVC Signal R

这是我的 Signal R 客户端。 当我 运行 我的客户端时出现此错误。(0x800a139e - JavaScript 运行时间错误:SignalR:加载集线器时出错。确保您的集线器参考正确,例如。)

异常来自行 $.connection.hub.start

我的服务器应用程序的 HUBS 文件夹中有一个 ServerHub class,运行 没问题。

谁能帮帮我.. 谢谢

<script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
<script src="http://localhost:39670/MySignalRServer/signalr/hubs"></script>
 var ChatHubProxy = $.hubConnection("http://localhost:39670/MySignalRServer/signalr/hubs");
        var chat = ChatHubProxy.createHubProxy('ServerHub');

    chat.on("addNewMessageToPage",function (name, message) {
        // Add the message to the page.
          $('#discussion').append('<li><strong>' + htmlEncode(name)
            + '</strong>: ' + htmlEncode(message) + '</li>');
        });
      $.connection.hub.start({jsonp:true}).done(function () {
            $('#sendmessage').click(function () {
                // Call the Send method on the hub.
                chat.server.send($('#displayname').val(),       $('#message').val());
                alert("hiii");
                // Clear text box and reset focus for next comment.
                $('#message').val('').focus();
            });
        });

尝试将您的代码更改为:

<script src="~/Scripts/jquery.signalR-2.2.0.min.js"></script>
<script src="http://localhost:39670/MySignalRServer/signalr/hubs"></script>

    var chat = $.connection.ServerHub;  //here

    chat.on("addNewMessageToPage", function(name, message) {
        // Add the message to the page.
        $('#discussion').append('<li><strong>' + htmlEncode(name)
            + '</strong>: ' + htmlEncode(message) + '</li>');
    });

    $.connection.hub.start().done(function() {    //here
        $('#sendmessage').click(function() {
            // Call the Send method on the hub.
            chat.server.send($('#displayname').val(), $('#message').val());
            alert("hiii");
            // Clear text box and reset focus for next comment.
            $('#message').val('').focus();
        });
    });

并确保这个地址是好的 - <script src="http://localhost:39670/MySignalRServer/signalr/hubs"></script>

我一直用这个 - <script src="/signalr/hubs"></script>

并添加 HubName 属性

[HubName("ServerHub")]
public class ServerHub : Hub
{
    public string Send(string name, string message)
    {
        Clients.All.broadcastMessage(name, message);

        return null;
    }
}

或更改此代码:

 var chat = $.connection.ServerHub;

 var chat = $.connection.serverHub;

演示项目:https://github.com/czerwonkabartosz/SignalRDemo