首页 > 解决方案 > javascript函数不称为信号器集线器方法

问题描述

   <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 方法!请帮忙。

标签: signalrsignalr.client

解决方案


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

为什么要打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);
    });

推荐阅读