我想使用服务器端的计时器功能定期向连接的客户端广播-我已经设法使用此处的一些示例来做到这一点。
但是,我希望某些客户端根据其连接到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 () {
});
});