Как подключиться к серверу signalR и зарегистрировать мой метод на моем сервере signalR в режиме обратного вызова AJax - PullRequest
0 голосов
/ 31 марта 2020

Это мой рабочий код:

$(function() {
  $.connection.hub.url = 'sampleUrl';
  $.connection.hub.start().done(function() {
    var uid = settingInvoiceUID;
    if (uid !== '')
      $.connection.notifyHub.server.registerInHub(uid);
  });

  $.connection.notifyHub;
  $.connection.notifyHub.client.updateClient = function(gInfo) {
    alret('blah blah blah');
  }
});

Я хочу использовать его так, и все будет работать, просто сервер не может вызвать этот метод updateClient в этом коде:

$("[id*='qrCodeImage']").click(function() {
  var postUrl = '/sample.aspx/SetAsScanned';
  var postedData = "{data: '" + settingInvoiceUID + "'}";
  $.ajax({
    type: 'POST',
    url: postUrl,
    dataType: 'json',
    data: postedData,
    contentType: "application/json; charset=utf-8",
    success: function(data) {
      var result = JSON.parse(data.d);

      if (result.IsSuccess) {
        $.connection.hub.url = 'sampleUrl';
        $.connection.hub.start().done(function() {
          var uid = settingInvoiceUID;
          if (uid !== '')
            $.connection.notifyHub.server.registerInHub(uid);
        });

        $.connection.notifyHub;
        $.connection.notifyHub.client.updateClient = function(gInfo) {
          alret(gInfo);
        }
      });
  });

Можно ли установить все коды SignalR, включая регистрацию подключения и концентратора, а также метод clientMethod, в callBack?

1 Ответ

0 голосов
/ 30 апреля 2020
    $.getScript(settingSignalRServerPath + "/hubs", function () {
    $.connection.hub.url = settingSignalRServerPath;
    // Declare a proxy to reference the hub.
    simpleHubProxy = $.connection.notifyHub;
    //Register to the "updateClient" callback method of the hub
    //This method is invoked by the hub
    simpleHubProxy.client.updateClient = function (gInfo) {
        checkTransactionAndRedirectToMerchant(gInfo);
    }
    $.connection.hub.start()
        .done(function () {
            var uid = '12345';
            $.connection.notifyHub.server.registerInHub(uid);
        })
        .fail(function () {
            console.log('creating conn failed')
        });
});

наконец я это сделал. Вы можете скопировать весь этот код в метод, который вызывается в callBack: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...