1

我有一个与 GitHub JQuery 示例几乎相同的示例 SignalR JQuery 客户端应用程序。如果我通过 VS2008 运行应用程序,我会收到以下错误:“SignalR:必须在发送数据之前启动连接。在 .send() 之前调用 .start()”

如果我从浏览器运行客户端应用程序,如下所示:http://localhost/SignalRClient,我得到的一切都按预期工作。

关于如何使用 Visual Studio 运行客户端的任何建议?

<div>
    <script type="text/javascript">
        $(function() {
            var connection = $.connection('http://localhost/signalrserver/echo');

            connection.received(function(data) {
                $('#messages').append('<li>' + data + '</li>');
            });

            connection.start();

            $("#broadcast").click(function() {
                connection.send($('#msg').val());
            });
        });
    </script>
    <input type="text" id="msg" />
    <input type="button" id="broadcast" />
    <ul id="messages"></ul>
</div>

谢谢。

4

1 回答 1

2

我也遇到了这个问题。由于 .start() 是一个异步事件,所以发生的事情是您在建立连接之前调用 .send() 。.start() 接受建立连接时触发的回调。您的代码将如下所示:

$(function() {
        var connection = $.connection('http://localhost/signalrserver/echo');

        connection.received(function(data) {
            $('#messages').append('<li>' + data + '</li>');
        });

        connection.start(function() {
            $("#broadcast").click(function() {
                connection.send($('#msg').val());
            });
        });
});
于 2012-03-20T21:20:54.103 回答