ZawaWorks’s diary

ProcessingやNode.jsなどプログラミング技術の話をします。

Node.jsからProcessingにテキストメッセージを送る

はじめに

 Node.jsとProcessingで変数やテキストメッセージを共有する記事は多々ありました。しかし、それらはNode.jsがサーバー側でクライアント側のProcessingがテキストメッセージを送るものでした。この記事はその逆で、Processingがサーバー側でクライアント側のNode.jsがテキストメッセージを送ることを試みました。

 

コードを書く前に

  自分はclientフォルダーとserverフォルダーを作成しました。clientフォルダーには「client.js」、serverフォルダーには「server.pde」というファイルを生成しました。今回Node.js側ではnetモジュールを使用するので「npm install net」でnetモジュールをインストールしましょう。

 

コードを書く

 client.jsとserver.pdeのコードは以下の通りです。

 

server.pde
import processing.net.*;

int port = 3000; // 適当なポート番号を設定

Server server;

void setup() {
server = new Server(this, port);
}

void draw() {
Client client = server.available();
if (client !=null) {
String whatClientSaid = client.readString();
if (whatClientSaid != null) {
println(whatClientSaid); // client.jsからのメッセージを出力
}
}
}

 

client.js
var net = require('net');

var port = 3000;//適当な数字を入れる
var host = 'xxxx';//IPアドレスを書く

var client = new net.Socket();

client.connect(port, host, () => {
console.log('Client: Connected to Server');
client.write("Hello world!");
});


client.on('close', () => {
console.log('Client: Disconnected from Server');
});

 

 実行

 まずはじめにserver.pdeを実行してから、client.jsを起動させてください。下の画像のようにProcessingのコンソール画面に「Hello world!」と表示されれば成功です。

f:id:ZawaWorks:20170912131137p:plain

 

引用元

 

qiita.comnaturalclar.com