1

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)
            );
4

0 に答える 0