SignalR與Web API可以通過以下步驟進行集成:
在Web API項目中安裝SignalR包:
Install-Package Microsoft.AspNet.SignalR
在Startup.cs文件中配置SignalR服務:
public void Configuration(IAppBuilder app)
{
app.MapSignalR();
}
創建一個Hub類來處理SignalR通信:
public class ChatHub : Hub
{
public void SendMessage(string message)
{
Clients.All.newMessage(message);
}
}
在Web API控制器中調用SignalR Hub方法:
public class ChatController : ApiController
{
public IHttpActionResult Post(string message)
{
var hubContext = GlobalHost.ConnectionManager.GetHubContext<ChatHub>();
hubContext.Clients.All.newMessage(message);
return Ok();
}
}
在客戶端代碼中連接SignalR Hub并調用方法:
var connection = $.hubConnection();
var chatHubProxy = connection.createHubProxy('chatHub');
chatHubProxy.on('newMessage', function (message) {
console.log('New message: ' + message);
});
connection.start().done(function () {
chatHubProxy.invoke('SendMessage', 'Hello, SignalR!');
});
通過以上步驟,你可以實現Web API與SignalR的集成,并通過SignalR實現實時通信功能。