Raspberry Pi で実行されている外部 NodeJs サーバーに文字列配列を送信する Android アプリを開発しています。
私は現在、AsyncTask を使用してアプリの送信側を処理しており、内部に NodeJs サーバーを対象としたソケット レイヤーがセットアップされています。サーバーは net および socket モジュールを使用してアプリからの呼び出しを正常に受信していますが、実際のデータを渡すのに苦労しています。
現時点では、OutputStream を使用してデータを送信しています。
OutputStream socketStream = socket.getOutputStream();
ObjectOutputStream objectOutput = new ObjectOutputStream(socketStream);
objectOutput.writeObject(new String[] {"Test", "Test2", "Test3"});
Log.i("Array Object", objectOutput.toString());
objectOutput.close();
socketStream.close();
これは、NodeJs サーバーに送信する文字列配列を記述する正しい方法ですか?
また、この書き込まれたデータを受信後に読み取るために、コードには NodeJs サーバーに何が含まれますか?
アップデート
NodeJs サーバーは、このチュートリアルhttp://helloaspberrypi.blogspot.co.uk/2014/03/create-tcp-server-using-nodejs-with-net.htmlに基づいています。
関数 callback_server_connection が net.createServer(callback_server_connection) で呼び出される場所。関数。
function callback_server_connection(socket){
var remoteAddress = socket.remoteAddress;
var remotePort = socket.remotePort;
socket.setNoDelay(true);
console.log("connected: ", remoteAddress, " : ", remotePort);
var msg = 'Hello ' + remoteAddress + ' : ' + remotePort + '\r\n'
+ "You are #" + count + '\r\n';
count++;
socket.end(msg);
socket.on('data', function (data) {
console.log(data.toString());
});
socket.on('end', function () {
console.log("ended: ", remoteAddress, " : ", remotePort);
});
}