Signalr Hubs を試しており、メッセージを外部ハブにプッシュする小さなアプリを作成しました。プロキシを作成してハブに接続すると、任意のメソッドを呼び出すことができます。
InitializeComponent();
connection = new HubConnection("http://externalsite.net");
myHub = connection.CreateProxy("WebHub");
if (connection.State.ToString() != "Connected")
{
connection.ConnectionId = "adminConsole";
Console.WriteLine("Attempting to connect...");
connection.Start().ContinueWith(task =>
{
Console.WriteLine("Attempting to Connect");
if (task.IsFaulted)
{
Console.WriteLine("error opening the connection:{0}"
task.Exception.GetBaseException());
}
else
{
Console.WriteLine("Client Connected");
}
}).Wait();
}
次に、「myHub.Invoke(メソッド)」を使用できます
私のハブには、接続されたクライアント用のメソッドがあり、Web ページを更新できますが、これらのイベントをサブスクライブしたり、アプリに通知したりするにはどうすればよいですか?
たとえば、これはハブのメソッドです。
public void Send(文字列メッセージ、文字列名) {
Clients.All.Broadcast(message, name);
}
すべてのクライアントがこのメッセージを受け取ります。どうすれば私のアプリもこれを受け取ることができますか?. これは可能ですか?アプリで変更をポーリングすることはできますが、これは理想とはほど遠いものです。
更新: 以下の On<> メソッドを添付しようとしましたが、運もありませんでした。
myHub.On<VMessage>("Send", message =>
textBox1.Text += string.Format("Message update for
{0} Message : {1}\n", message.engineName, message.Vmsg)
);