Signalr连接到集线器,具体取决于连接的客户端参数

时间:2019-02-11 18:50:08

标签: asp.net signalr

我想使用服务器端的计时器功能定期向连接的客户端广播-我已经设法使用此处的一些示例来做到这一点。 但是,我希望某些客户端根据其连接到Web服务器的参数连接到某些集线器。这样,我就可以向适当的客户端广播相同的信息集。
也许我也可以为此使用组。

例如与以下客户端建立连接的客户端

http://webserver01/myprogram.aspx?id=1234 -- > add this to hub London (or Group London)

http://webserver01/myprogram.aspx?id=4321 -- > add this to hub Thame (or Group Thame)

有人可以帮助我开始这样的事情吗?或指向正确的方向。

currenlty我正在使用下面的代码使用javascript interval定期连接到hub方法,然后根据这些结果确定在屏幕上显示的内容-但我认为这不是一个好方法

  const urlParams = new URLSearchParams(window.location.search);
  const serial = urlParams.get('serial');


        var myHub = $.connection.myHub1;


        $.connection.hub.start()
            .done(function () {
                console.log('Now connected, connection ID=' + $.connection.hub.id)
                setInterval(function () {
                    var userPreferences = myHub.server.getuserpreferences(serial).done(function (userOptionsString) {
                        console.log('Invocation of getuserpreferences succeeded' + userOptionsString);
                        setdashboardstate(userOptionsString);

                    }).fail(function (error) {
                        alert('Invocation of getuserpreferences failed. Error: ' + error);
                        var refresh = 'http://localhost:5000/refresh.sh';
                        $.ajax({
                            url: refresh,
                        });
                    });
                }, 10000);

                setInterval(function () {
                    //not needed when camera is showing

                    if (!$("#divCamera").is(':hidden')) { console.log("skipping getAdverts camera showing"); return }
                    var getAdverts = myHub.server.getAdverts().done(function (advertString) {
                        console.log('Invocation of getAdverts succeeded' + advertString);
                        jsCaraHadiths(advertString);


                    }).fail(function (error) {
                        alert('Invocation of getAdverts failed. Error: ' + error);                           
                   });
                }, 30000);



            })
            .fail(function () {

                });
            });

0 个答案:

没有答案