我在我的应用程序中使用SignalR,以便能够在访问/命中/调用ASP.NET MVC控制器的特定操作方法时自动调用一个JavaScript方法。第一次打击时一切正常。但是当我第二次尝试按下控制器动作时HttpWebRequest
次超时。以下是我的控制员:
public class ShowRoomHubController : Controller
{
public void UpdateDressingRoomData()
{
var hubContext = GlobalHost.ConnectionManager.GetHubContext<ShowRoomHub>();
hubContext.Clients.All.acceptGreet();
}
}
我的中心如下:
public class ShowRoomHub : Hub
{
public void Hello()
{
Clients.All.hello();
}
public void GreetAll()
{
// Call the addNewMessageToPage method to update clients.
Clients.All.acceptGreet("test now");
}
}
从UpdateDressingRoomData
或HttpWebRequest
调用HttpClient
操作仅适用于第一次,然后才开始超时。这是我的控制台应用程序代码(HTTP客户端):
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost:81/ShowRoomHub/UpdateDressingRoomData");
var response = request.GetResponse();
response.Close();
或者
var httpClient = new HttpClient();
var response = httpClient.GetAsync("http://localhost:81/ShowRoomHub/UpdateDressingRoomData").Result;
这是我的javascript客户端代码:
connection = $.hubConnection();
//Creating proxy
this.proxy = connection.createHubProxy('showRoomHub');
connection.logging = true;
//Publishing an event when server pushes a greeting message
this.proxy.on('acceptGreet', function () {
//alert('message');
$rootScope.$emit("acceptGreet", null);
});
//Starting connection
connection.start().done(function () {
//alert('started');
});
知道我的代码有什么问题吗?