从WebAPI和Hub调用时,Angular Js和SignalR无法正常工作

时间:2016-09-22 15:32:38

标签: javascript angularjs asp.net-web-api signalr

我正在使用Angular JS进行signalR实现。当我试图从API或Hub调用SignalR事件到ui客户端时...它没有按预期工作。 WebAPI Call 我没有在浏览器中收到任何有关SignalR请求的响应。 ServiceCreated for SignalR [客户端事件的重新开始] [3]

我没有在SignalR的测试事件中获得任何转换(在chrome中工作一段时间)。

谢谢你提前。真的很感谢你的快速回答。

1 个答案:

答案 0 :(得分:0)

除了必须在服务器调用的客户端上编写“test”函数之外,你必须开始连接。

在这里您可以看到一个示例:

客户代码:

<script>

$(function () {
    var connection = $.hubConnection("http://localhost:27709/signalr");
    var chatHubProxy = connection.createHubProxy('chatHub');
    chatHubProxy.on('newMessageAdded', function (name, message) {
    $("#messages").append("<li>" + name + message + "</li>");
    console.log(name + ' ' + message);
    });

connection.start({ transport: 'longPolling' }).done(function () {
    $('#btnSend').click(function () {
    chatHubProxy.invoke('newMessage', "Stephan", $('#msg').val());
    $('#msg').val('').focus();
    });    
});

});

</script>

服务器:

public class ChatHub : Hub
    {
    public void NewMessage(string name, string message)
    {
    Clients.All.newMessageAdded(name, message);
    }
 }

重要的是你在服务器端和客户端编写方法/函数相同(没有拼写错误)。

注意Pascal和Camelcase的集线器,方法,......: - 在客户端上,代理名称是Hub类名称的驼峰版本。

顺便说一下:为什么你没有使用生成的代理?