目標は、ネットワーク経由で送信されたデータを読み取ることです。
データ生成側では、stdout に吐き出すアプリがあります。このデータの内容は JSON 文字列です。
これが私がやっていることです(Linux Mint 17で、BSDフレーバーのnetcatを使用しています):
データ生成:
my_app_which_outputs_json | netcat localhost 9999
SpringXD の場合: (with xd-singlenode
)
xd:>stream create --name tcptest --definition "tcp --decoder=LF --port=9999 | file " --deploy
Created and deployed new stream 'tcptest'
出力:
/tmp/xd/output$ cat tcptest.out
82,117,110, ... (etc, lots more bytes)
これはユーザー エラーであると確信していますが、正しくするために何を変更すればよいかわかりません。
これを行うと、期待どおりに機能することに注意してください。
my_app_which_outputs_json > /tmp/somefile.txt
...
xd:>stream create --name filetest --definition "tail --name=/tmp/somefile.txt | file" --deploy