使用SignalR

时间:2015-05-20 21:38:15

标签: asp.net-mvc signalr

我在我的应用程序中使用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");
    }
}

UpdateDressingRoomDataHttpWebRequest调用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');
    });

知道我的代码有什么问题吗?

0 个答案:

没有答案