SignalR - 如何使用hubproxy从客户端调用带有参数的服务器功能

时间:2017-05-28 05:07:36

标签: signalr

我让我的信号器在一个单独的域上运行。我们将有多个应用程序使用它来发送和接收消息。我使用以下代码

创建了连接和集线器代理
connection = $.hubConnection("https://someurl.com", { useDefaultPath: false });
            chatHub = connection.createHubProxy('chatHub');

我可以使用以下代码从服务器发送到客户端的消息

chatHub.on('receiveEntityMessage', function (chatMessage) {
                if (chatMessage) {
                    console.log(chatMessage.Message);
                }
            });

现在我不知道如何使用客户端的参数调用服务器函数。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:0)

chatHub.invoke("MethodName", param1, param2, param3).done(function(result) {
   console.log(result);
});

答案 1 :(得分:0)

由于我不确定您服务器端的语言是什么,因此我将提供一个C#示例。

C#集线器方法示例:

public class chatHub: Hub {

    public void YourHubMehotd(int firstParam, string secondParam){

        //The action of your method

    }

}

JS客户端:

您可以像这样调用集线器方法:

{具有集线器连接的变量}。server。{您要调用的方法}({参数})< / p>

示例:

chatHub.server.YourHubMehotd(1,"Example");

我建议创建一个js函数来调用hub方法。

function callMyHubMethod(firstParam, secondParam){

    chatHub.server.YourHubMehotd(firstParam, secondParam);

}