さくらのレンタルサーバでwebsocket

Pocket

PHPでwebsocketが使えるRatchetを入れてみる。

参照: http://socketo.me/

sshで接続。ターミナルから

ssh hoge@hoge.sakura.ne.jp

入ったら、適当なディレクトリにて

curl -sS https://getcomposer.org/installer | php

すると、composer.phar ファイルができるので、それをinstall

./composer.phar install

既にinstall済みだったら、updateしておく。

./composer.phar update

設定方法

以下、http://socketo.me/docs/hello-world の補足

composer.jsonファイルを作る

{
    "autoload": {
        "psr-0": {
            "MyApp": "src"
        }
    },
    "require": {
        "cboden/Ratchet": "0.3.*"
    }
}

/bin/chat-server.phpの、port番号を決めておく。以下は8080にした例

<?php
use Ratchet\Server\IoServer;
use Ratchet\Http\HttpServer;
use Ratchet\WebSocket\WsServer;
use MyApp\Chat;
    require dirname(__DIR__) . '/vendor/autoload.php';
    $server = IoServer::factory(
        new HttpServer(
            new WsServer(
                new Chat()
            )
        ),
        8080
    );
    $server->run();

ブラウザ側で表示するファイルに

<script>
var conn = new WebSocket('ws://hoge.sakura.ne.jp:8080');
conn.onopen = function(e) {
    console.log("Connection established!");
};
conn.onmessage = function(e) {
    console.log(e.data);
    alert(e.data);
};
</script>

いくつかブラウザを立ち上げて、コンソールで

conn.send('Hello World!');

とすれば、他のブラウザでalertがでるのが確認できる。

レンタルサーバでも簡単に設置できたので重宝しそう。

 

何に使うかって?RaspberryPiでラジコンですよ!

無事完成しました。予想通り、websocketはこういう用途に実に適していました。

この記事を書いた人