回答編集履歴
2
訂正
test
CHANGED
@@ -62,4 +62,4 @@
|
|
62
62
|
|
63
63
|
そして、function に含まれるコードで、引数 stock に受け取った JavaScript オブジェクトの内容で html 要素を書き換えます。結果、ブラウザ上の表示が最新情報で書き換えられます。
|
64
64
|
|
65
|
-
サーバー側の BroadcastStockPrice メソッドは StockTicker.cs の StockTicker クラスで Timer を使って定期的に呼び出されるようになっています。具体的には、サンプルコードでは、250ms 毎に株価に変動があったかどうかをチェックし、変動があった場合は BroadcastStockPrice 呼び出して接続されているクライアントに情報をブロードキャストしています。
|
65
|
+
サーバー側の BroadcastStockPrice メソッドは StockTicker.cs の StockTicker クラスで Timer を使って定期的に呼び出されるようになっています。具体的には、サンプルコードでは、250ms 毎に株価に変動があったかどうかをチェックし、変動があった場合は BroadcastStockPrice を呼び出して接続されているクライアントに情報をブロードキャストしています。
|
1
追記
test
CHANGED
@@ -23,3 +23,43 @@
|
|
23
23
|
ASP.NET Core SignalR
|
24
24
|
http://surferonwww.info/BlogEngine/post/2021/12/29/aspnet-core-signalr.aspx
|
25
25
|
|
26
|
+
---
|
27
|
+
|
28
|
+
**【追記】**
|
29
|
+
|
30
|
+
上に紹介した記事、
|
31
|
+
|
32
|
+
ASP.NET Core SignalR
|
33
|
+
http://surferonwww.info/BlogEngine/post/2021/12/29/aspnet-core-signalr.aspx
|
34
|
+
|
35
|
+
において「サーバー側から操作してクライアントにデータを送る」ところはどのようにしているのかを追記します。
|
36
|
+
|
37
|
+
上の記事の「(5) クライアントスクリプト」のセクションの「サーバーからのリモートプロシージャコール」のところを見てください。
|
38
|
+
|
39
|
+
以下のメソッドがありますが、これを呼び出すと情報をクライアントへ送信します。具体的には引数の Stock クラスの C# のオブジェクトを JSON にシリアライズしてクライアントに送信します。
|
40
|
+
|
41
|
+
|
42
|
+
```C#
|
43
|
+
private void BroadcastStockPrice(Stock stock)
|
44
|
+
{
|
45
|
+
_hubContext.Clients.All
|
46
|
+
.SendAsync("UpdateStockPrice", stock);
|
47
|
+
}
|
48
|
+
```
|
49
|
+
|
50
|
+
クライアントでは以下の JavaScript のメソッドが定義されています。上の BroadcastStockPrice メソッドの中の SendAsync メソッドの第 1 引数と、下の HubConnection.on メソッドの第 1 引数が同じであることに注目してください。
|
51
|
+
|
52
|
+
|
53
|
+
```javascript
|
54
|
+
connection.on("UpdateStockPrice", function (stock) {
|
55
|
+
var displayStock = formatStock(stock);
|
56
|
+
var $row = $(rowTemplate.supplant(displayStock));
|
57
|
+
$stockTableBody.find('tr[data-symbol=' + stock.symbol + ']')
|
58
|
+
.replaceWith($row);
|
59
|
+
});
|
60
|
+
```
|
61
|
+
この設定により、サーバー側で BroadcastStockPrice 呼び出されると、クライアント側で HubConnection.on メソッドの第 2 引数に設定されている function が起動され、引数の stock にサーバー側から送られてきた JSON 文字列が JavaScript オブジェクト(連想配列)にデシリアライズされて渡されます。
|
62
|
+
|
63
|
+
そして、function に含まれるコードで、引数 stock に受け取った JavaScript オブジェクトの内容で html 要素を書き換えます。結果、ブラウザ上の表示が最新情報で書き換えられます。
|
64
|
+
|
65
|
+
サーバー側の BroadcastStockPrice メソッドは StockTicker.cs の StockTicker クラスで Timer を使って定期的に呼び出されるようになっています。具体的には、サンプルコードでは、250ms 毎に株価に変動があったかどうかをチェックし、変動があった場合は BroadcastStockPrice 呼び出して接続されているクライアントに情報をブロードキャストしています。
|