3
我有一個用C#編寫的訂閱來自Hub的事件的SignalR客戶端應用程序。當事件被「解僱」時,應用程序執行一個方法。如何在C#客戶端中同時處理多個事件
現在的問題是,所有這類客戶端的事件都是按順序處理的。
用例/流量:
- 在瀏覽器中,用戶點擊一個按鈕
- 的按鈕觸發一個SignalR樞紐
- 的SignalR中心打電話將消息發送到特定的SignalR客戶端
- SignalR客戶端接收事件/消息
- SignalR客戶端調用一個方法將消息存儲在數據庫中
- 的SignalR客戶端調用輪轂中的方法返回的結果
- 集線器提供給用戶的結果
如果另一個用戶點擊的同時按鈕,SignalR客戶端將只存儲一次一條消息。
客戶機示例:
myHub.On<ExecuteRequestModel, string>("Execute", (request, to) =>
{
logger.Info("Execute request received for connectionID: " + connection.ConnectionId);
myMethod();
myHub.Invoke("ExecuteResult", response, to);
logger.Info("Execute request processed");
logger.Info("...");
});
有任何建議的做法來處理併發的方式多個事件?
你能詳細解釋一下......也許有一個示例場景嗎? – Hackerman
Hi @Hackerman。問題已更新。你可以看一下嗎? –
也許可以使用'Task.Run'作爲它,但我不確定是否可以從不同的線程發回響應。我很想知道這個設計。爲什麼Web應用程序(Hub)應該通過SignalR與數據庫層進行通信,並且不要使用Web服務或類似的東西。 –