【问题标题】:javascript function not called signalr hub methodjavascript函数不称为信号器集线器方法
【发布时间】:2018-07-19 00:42:51
【问题描述】:
   <code> 
      `public void SendChat()       
            {
              var clients = Clients.All;
         clients.sendchat();
          }`  
        </code>

它是集线器方法

      <code>      ` var chat = $.connection.echo;
          chat.client.sendchat = function () {
         console.log("signalR work!"); };`

     </code>

这是客户端方法

     <code>
        $('#sendMessage').click(function () {
      $.ajax({             type: 'POST',
                           url: '/InboxUI/SendMessage',
                           data: { friendId: friend, message: text },
                           success: function (sendDate) {
                          date = sendDate.toLocaleString('tr-TR', { timeZone: 
            'UTC' });} }).done(function () {
           hub.server.sendChat();});
    });

     </code>

这是服务器方法 这个 sendChat 方法不叫 echoHub 的 sendchat 方法! 请帮忙。

【问题讨论】:

    标签: signalr signalr.client


    【解决方案1】:

    1.阅读教程 根据您的代码,我建议您从以下教程开始:https://docs.microsoft.com/en-us/aspnet/signalr/overview/guide-to-the-api/hubs-api-guide-server

    为什么要进行 ajax 调用?您从哪里开始连接?...使用信号器,您应该首先启动与服务器的连接。之后,您可以双向发送消息。

    2。示例代码

    根据上一个链接中的以下示例,您可以向前迈出一步:

    服务器部分:

    public class ContosoChatHub : Hub
    {
        public void NewContosoChatMessage(string name, string message)
        {
            Clients.All.addNewMessageToPage(name, message);
        }
    }
    

    客户端部分:

    var contosoChatHubProxy = $.connection.contosoChatHub;
    // Define the methods which the client can call on the server. (Must be befor start!)
    contosoChatHubProxy.client.addContosoChatMessageToPage = function (name, message) {
        console.log(userName + ' ' + message);
    };
    // Important you must start the connection
    $.connection.hub.start()
        .done(function(){
         console.log('Now connected, connection ID=' + $.connection.hub.id);            
         })
        .fail(function(){ console.log('Could not Connect!'); });
    
    // You can call also method from client on server like (Connection must be established first!):
    contosoChatHubProxy.server.newContosoChatMessage({ UserName: userName, Message: message}).done(function () {
            console.log ('Invocation of NewContosoChatMessage succeeded');
        }).fail(function (error) {
            console.log('Invocation of NewContosoChatMessage failed. Error: ' + error);
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-31
      相关资源
      最近更新 更多