2016-09-18 2 views
6

私はTCP/IPのローカルネットワーク上のシッククライアントアプリケーション(変更できない)にコマンドを送信するWebアプリケーション(ASP.NET MVC)で実際に動作します。シッククライアントアプリケーションが私のコマンドに応答するか、私に情報を与える必要があるので、接続は常に開いておく必要があります。そうそこが優れている、TCP/IPクライアント側ループ.NET

public static async void getMessage() 
     { 
      while(true) 
      { 
       // Buffer to store the response bytes. 
       Byte[] data = new Byte[100000]; 

       // String to store the response ASCII representation. 
       String responseData = String.Empty; 

       // Read the first batch of the TcpServer response bytes. 
       Int32 bytes = await stream.ReadAsync(data, 0, data.Length); 
       if (bytes == 0) continue; 
       responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes); 
       Debug.Write(responseData); 

       await stream.ReadAsync(data, 0, data.Length); 
      } 
     } 

実際に働いている、と私は、サーバーからの応答を受信しますが、ブラウザは、すべての時間「localhostのを待って」されています。私はそのようなサーバの応答をチェックするループを作成します方法は、ブラウザ上のループなしで行うには?

ありがとうございました!

答えて

5

これはwebsocketにとって本当に良いケースのようです。 MVCアプリケーションでは、通常、SignalRを使用します。http://www.asp.net/signalr

+0

まずはお時間をいただき、ありがとうございます。私はもう1つの質問があるかもしれません(おそらく愚かなもの...)Webアプリケーションは、インターネットに接続されていないローカルネットワーク上でのみ使用できるように、サーバーに "デプロイ"されます。それは信号機の使用で問題になるのでしょうか? –

+0

いいえ、イントラネットサーバーにSignalRパッケージを展開している限り、これは重要ではありません。 NuGet( 'Install-Package Microsoft.AspNet.SignalR')経由でインストールした場合は、正しくパッケージ化/展開する必要があります – dperish

関連する問題