FINREDプロジェクト、とりたてて新しい技術を使うわけではない。
で、ひとつひとつ確認しながら、進めていく。
ポイントとなるのはいくつかあるけれど、おおまかに以下が重要ポイントだ。
で、ひとつひとつ確認しながら、進めていく。
ポイントとなるのはいくつかあるけれど、おおまかに以下が重要ポイントだ。
- WebSocket
- DLNA
- 独自プロトコル
とくにWebSocketは今までサンプルを動かすくらいしかやったことないので、
テストしながら進めてみる。
最終的にはC++屋なので、C系で統一したいところだが、
テストとしてはC及びPHPを使用することにする。
PHPを選んだことに特に意味はなく、
こういうことはPythonとかのが一般的かもだけど、
逆に情報があまり少ないものをやってくのも意味があるとおもうので、
やってみる。
まず、WebSocketとは何かとか、そういうのはここではやらない。
まぁ今回は、PUSH通信のためにこれを使うことになる。
では、PHPとCの両方でテストしながら色々やってみることにする。
ではサンプルを実行させてみよう。
インストールに関しては、ここらへんが参考となる。
ちょっと変更して実行してみた結果は以下である。
単純に、デバッグコンソールから、
変更点は以下である。
これは、クライアントを色々管理しやすくするためにこうしただけだ。
変更前をコメントで残した形でのSRCが以下。
テストしながら進めてみる。
最終的にはC++屋なので、C系で統一したいところだが、
テストとしてはC及びPHPを使用することにする。
PHPを選んだことに特に意味はなく、
こういうことはPythonとかのが一般的かもだけど、
逆に情報があまり少ないものをやってくのも意味があるとおもうので、
やってみる。
まず、WebSocketとは何かとか、そういうのはここではやらない。
まぁ今回は、PUSH通信のためにこれを使うことになる。
では、PHPとCの両方でテストしながら色々やってみることにする。
Ratchet
RatchetはPHPのWebSocketライブラリである。ではサンプルを実行させてみよう。
インストールに関しては、ここらへんが参考となる。
ちょっと変更して実行してみた結果は以下である。
単純に、デバッグコンソールから、
conn.send('Hello World!');
と打っただけの結果だ。
変更点は以下である。
- SplObjectStorageでクライアントを管理していたが、これを単なるARRAYにした
- ARRAYのキーを、ConnectionInterface::resourceIdとした
これは、クライアントを色々管理しやすくするためにこうしただけだ。
変更前をコメントで残した形でのSRCが以下。
//-------------------------------------
public function __construct() {
// $this->clients = new \SplObjectStorage;
$this->clients = array();
}
//-------------------------------------
public function onOpen(ConnectionInterface $conn) {
// Store the new connection to send messages to later
// $this->clients->attach($conn);
$this->clients[$conn->resourceId] = $conn;
echo "New connection! ({$conn->resourceId})\n";
}
//-------------------------------------
public function onClose(ConnectionInterface $conn) {
// The connection is closed, remove it, as we can no longer send it messages
// $this->clients->detach($conn);
unset($this->clients[$conn->resourceId]);
echo "Connection {$conn->resourceId} has disconnected\n";
}
//-------------------------------------
つづく。
コメント
コメントを投稿