Asp.net

SignalR OnConnected 和 OnDisconnected 未觸發

  • December 30, 2021

我的集線器中的 OnConnected 和 OnDisconnected 覆蓋無法觸發時遇到問題。

出於複製目的,我有一個非常簡單的集線器:

public class OnlineHub : Hub
{
   public void TestMethod()
   {
       var a = 1;
   }

   public override System.Threading.Tasks.Task OnConnected()
   {
       return Clients.All.connected(Context.ConnectionId, DateTime.Now.ToString());
   }

   public override System.Threading.Tasks.Task OnDisconnected()
   {
       return Clients.All.disconnected(Context.ConnectionId, DateTime.Now.ToString());
   }
}

還有一個aspx頁面:

<script type="text/javascript">
   $(function () {
       $("#btn").click(function () {
           $.connection.onlineHub.server.testMethod();
       });

       $.connection.onlineHub.server.connected = function (id, date) {
           $("#results").append("connected: " + id + " : " + date + "</br>");
       };

       $.connection.onlineHub.server.disconnected = function (id, date) {
           $("#results").append(("connected: " + id + " : " + date + "</br>");
       };

       $.connection.onlineHub.connection.start();
   });

</script>

我正在使用 jQuery 1.6.4 和 signalR 1.0.0-alpha2。未執行客戶端連接和斷開連接的方法。如果我在 OnConnected 或 OnDisconnected 中設置斷點,斷點不會命中。

正在建立連接,因為我的 TestMethod 呼叫正常,並且我從 signalR 的協商呼叫中得到了一個 connectionId。

我確定我錯過了一些簡單的東西。

提前致謝。

您的客戶端處理程序應該如下所示:

$.connection.onlineHub.client.connected = function(){...}

事實證明,在腳本中,您需要為要在集線器上引發的事件定義至少一個客戶端回調。在預期呼叫 OnConnected 和 OnDisconnected 時要小心。

引用自:https://stackoverflow.com/questions/13799160