我有一个SignalR JQuery客户端应用程序示例,该应用程序与GitHub 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>


谢谢。

最佳答案

我也遇到了这个问题。由于.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());
            });
        });
});

10-05 20:58
查看更多