如何从MVC应用通过JavaScript集成SignalR Web API服务?
SignalR Web API 与 MVC 应用的 JavaScript 集成方案
我整理了一套完整的实现代码,分为服务端(Web API)和客户端(MVC视图)两部分,帮你实现通过JavaScript调用SignalR服务的功能:
服务端(Web API)代码
首先在Web API项目中创建一个SignalR Hub类,记得启用CORS以支持跨域请求:
[EnableCors(origins: "*", headers: "*", methods: "*")] public class NotificationHub : Hub { public void Hello(string message) { Clients.All.hello("This Massage via server : " + message); } }
客户端(MVC视图)调用代码
在MVC的视图页面中,引入SignalR的JavaScript库后,添加以下代码来连接SignalR服务并调用方法:
<script> $.connection.hub.url = "http://localhost:51929/signalr"; $.connection.hub.start() .done(function () { $.connection.notificationHub.server.hello("Hi Rajesh!"); }) .fail(function () { alert('Error!'); }); $.connection.notificationHub.client.hello = function (message) { $('#message').append(message); }; </script>
简单说明
- 服务端的
NotificationHub类定义了一个Hello方法,接收客户端传来的消息后,会把拼接后的消息推送给所有连接的客户端。 - 客户端首先指定SignalR服务的URL,然后启动连接;连接成功后调用服务端的
hello方法,同时注册客户端的hello回调函数,用来接收服务端推送的消息并追加到页面的#message元素中。
内容的提问来源于stack exchange,提问作者Rajesh Kashyap
相关产品推荐
相关产品推荐

