在VS2008中运行时,SignalR Client应用程序无法连接

时间:2012-01-30 17:45:46

标签: javascript signalr

我有一个示例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>

感谢。

1 个答案:

答案 0 :(得分: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());
            });
        });
});