javascript函数未称为Signalr Hub方法

时间:2018-07-19 00:42:51

标签: signalr signalr.client

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

1 个答案:

答案 0 :(得分:0)

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

为什么要进行ajax调用?您在何处开始连接?...使用Signalr首先应开始与服务器的连接。之后,您可以双向发送消息。

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);
    });