SignalR拒绝工作
Global.asax中:
void Application_Start(object sender, EventArgs e) { RouteTable.Routes.MapConnection("echo", "echo/{*operation}"); }
myconnection.cs
public class myconnection : PersistentConnection { protected override Task OnReceivedAsync(string clientId, string data) { // Broadcast data to all clients return Connection.Broadcast(data); } }
〜/页/ Messages.aspx
$(function () { var connection = $.connection('echo'); connection.received(function (data) { $('#messages').append('' + data + ' '); }); connection.start(); $("#broadcast").click(function () { connection.send($('#msg').val()); }); });
错误:
SignalR:必须先启动连接,然后才能发送数据。 在.send()之前调用.start()
到目前为止我尝试了什么:
<script type="text/javascript" src=''>
这两个解决方案(https://github.com/SignalR/SignalR/wiki/Faq)都没有解决我的问题。 有任何想法吗)? 谢谢。
确保正确配置echo
脚本的URL:
var connection = $.connection('<%= ResolveClientUrl("~/echo") %>');
因为你在~/Pages
文件夹里面使用echo
是不正确的,因为如果应用程序托管在虚拟目录中,你的路由需要/echo
或/appname/echo
。