asp.net-mvc – ASP.NET MVC 4中没有使用SignalR的服务器到客户
发布时间:2020-12-16 09:52:27 所属栏目:asp.Net 来源:网络整理
导读:我创建了一个简单的测试应用程序来重现我在主应用程序中遇到的问题. 我有以下集线器类: [HubName("testHub")]public class TestHub : Hub{ public TestHub() { System.Diagnostics.Debug.WriteLine("TestHub instantiated"); } public void RunMe() { Syste
我创建了一个简单的测试应用程序来重现我在主应用程序中遇到的问题.
我有以下集线器类: [HubName("testHub")] public class TestHub : Hub { public TestHub() { System.Diagnostics.Debug.WriteLine("TestHub instantiated"); } public void RunMe() { System.Diagnostics.Debug.WriteLine("Client Started"); } public static void Notify(string msg) { var hubContext = GlobalHost.ConnectionManager.GetHubContext<TestHub>(); hubContext.Clients.All.notify("Hello!"); } } 我的测试网页是: <form action="javascript: void(0)" method="post"> <input type="button" value="Do It!" onclick="hitHub()"/> </form> <div id="error"></div> <script type="text/javascript"> var tHub; $(document).ready(function () { tHub = $.connection.testHub; tHub.notify = function (msg) { alert(msg); } $.connection.hub.start().done(function () { tHub.server.runMe(); }); }); function hitHub() { $.ajax({ type: "POST",url: "@Url.Content("~/Hub/Test")",success: function (data,textStatus,jqXHR) { },error: function (data,jqXHR) { $("#error")[0].innerHTML = data.responseText; alert("Error notifying hub."); } }); } </script> 最后,我的HubController: public class HubController : Controller { [AcceptVerbs(HttpVerbs.Post)] public void Test() { TestHub.Notify("Got it!"); } } 在我的Application_Start中,我调用了RouteTable.Routes.MapHubs(); 集线器实例化.然后,对runMe()的调用将传递给服务器.一切正常. 失败的地方是我点击“Do It!”按钮.调用hitHub()并调用我的HubController.Test()方法. TestHub.Notify(“得到它!”)执行没有任何错误,但客户端没有任何反应. 我错过了什么? 更新1:根据JcFx的回答,更改了上面的javascript,以便在调用$.connection.hub.start()之前设置tHub.notify.然而,问题仍然存在. 更新2: 更新3:当我跟踪MessageBus.Publish()调用时,我注意到主题没有订阅,所以主题永远不会被安排.我不知道我应该在什么时候检查订阅… 解决方法
您使用的语法错误:
var tHub; $(document).ready(function () { tHub = $.connection.testHub; tHub.client.notify = function (msg) { alert(msg); } $.connection.hub.start().done(function () { tHub.server.runMe(); }); }); 注意集线器上的.client属性以注册回调. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-core – 访问Raw Request Body
- asp.net-mvc – ServiceStack和MVC4没有连线
- 在asp.net中按日期对directoryinfo中的文件进行排序
- asp.net-mvc-3 – MVC3,Unity Framework和Per Session Life
- ASP.NET MVC:Application_Start和Url.Action
- asp-classic – ConnectionTimeout无效
- asp.net 操作FTP作为数据中转-Helper.cs
- asp.net – ASP按钮(命令与提交)
- 将文件路径转换为asp.net核心中的URL
- ASP.NET动态数据TextSearch自定义过滤器模板
推荐文章
站长推荐
- asp.net – 将单选按钮与相应的标签对齐
- LoginView中的ASP.NET LoginStatus不会触发Loggi
- asp.net-mvc – Web API和ASP MVC之间的主要区别
- Asp.net对Php性能
- asp.net-mvc – MVC4应用程序“无法加载DLL’lib
- asp.net – RequiredFieldValidator要求用户单击
- asp.net-mvc-4 – 什么文件夹应该把我的扩展方法
- 在使用ASP.NET会话时是否可以强制请求并发?
- asp.net – Telerik UI控件与jQuery的客户端UI
- asp.net-mvc-3 – 在ASP.NET MVC中使用@ data-bi
热点阅读