简单的SignalR聊天

时间:2012-04-25 16:05:37

标签: asp.net signalr

我按照https://github.com/SignalR/SignalR/wiki/QuickStart-Hubs处的文档使用SignalR Hubs创建了一个简单的聊天应用程序。

我无法让它工作,也不明白我做错了什么?

我一直收到以下错误:

SignalR:必须先启动连接才能发送数据。在.send()

之前调用.start()

Hub类:

public class Chat : Hub
{
    public void Send(string message)
    {
        Clients.addMessage(message);
    }
}

客户端:

<head runat="server">
    <title></title>
    <script src="Scripts/jquery-1.6.4.min.js" type="text/javascript"></script>
    <script src="Scripts/jquery.signalR.min.js" type="text/javascript"></script>
    <script src="signalr/hubs" type="text/javascript"></script>
    <script type="text/javascript">
        $(function () {
            // Proxy created on the fly
            var chat = $.connection.chat;

            // Declare a function on the chat hub so the server can invoke it
            chat.addMessage = function (message) {
                $('#messages').append('<li>' + message + '</li>');
            };

            $("#broadcast").click(function () {
                // Call the chat method on the server
                chat.send($('#msg').val())
            .done(function () {
                console.log('Success!');
            })
            .fail(function (e) {
                console.warn(e);
            });
            });

            // Start the connection
        $.connection.hub.start();


        });
    </script>
</head>
<body>
    <div>
        <input type="text" id="msg" />
        <input type="button" id="broadcast" value="broadcast" />
        <ul id="messages">
        </ul>
    </div>
</body>

的软件包:

<packages>
  <package id="Newtonsoft.Json" version="4.0.8" />
  <package id="SignalR.Server" version="0.4.0.0" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" />
  <package id="SignalR.Hosting.AspNet" version="0.4.0.0" />
  <package id="jQuery" version="1.6.4" />
  <package id="SignalR.Js" version="0.4.0.1" />
  <package id="SignalR" version="0.4.0" />
  <package id="jQuery.Color" version="1.0" />
</packages>

1 个答案:

答案 0 :(得分:1)

您是否查看了浏览器的开发者工具,看看是否有任何错误?

由于在尝试连接服务器时出现错误(例如500),SignalR可能无法在客户端启动。