我有一个示例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>
感谢。
答案 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());
});
});
});