0
tcp_connection = tcp_connect('localhost', 20060)
// the server will always send responses on one line.
tcp_connection.on('line', function (line) {
json = json.decode(line)
if(json.result == "success") {
    // etc, etc, etc.
}
})
tcp_connection.write("/api/subscribe?source={sourceName}&key={key}&show_previous={true|false}") //stream API request

これは私が入手した擬似コードであり、C#で書き直す方法がわかりません。私はこのようなものを手に入れました:

TcpClient connection = new TcpClientWithTimeout(host, 20059, 20000).Connect();
NetworkStream stream = connection.GetStream();

「tcp_connection.on」を置き換える方法がわからないため、TCPでサブスクライブした後、取得した各行はjson.decodeを使用して文字列に変換されます(役立つ場合は、応答形式は次のとおりです。

{"result":"success/error","source": "{source}","success":{"time": TIME RECEIVED,"line":"RECEIVED LINE"}} )
4

1 に答える 1

0

何かのようなもの:

TcpClient connection = new TcpClientWithTimeout(host, 20059, 20000).Connect();
NetworkStream stream = connection.GetStream();
var reader = new StreamReader(stream);
var writer = new StreamWriter(stream);
var line = reader.ReadLine();
if (line != "success")
    throw new InvalidOperationException("Failed to connect");

writer.WriteLine(@"/api/subscribe?source={sourceName}&key={key}&show_previous={true|false}");

その後、あなたはただ行を読み始めます:

while ((line = reader.ReadLine()) != null)
{
    Console.WriteLine("Got event: " + line);
}
于 2013-02-21T07:12:22.873 に答える