laravel4に限らない話ですが、websocket関連の実装を行うときに
一番はまりやすい問題がロングポーリングではないでしょうか。
websocketを使って何かを実装する場合は、Redisはほぼ必須なのではないかと思いますが、
環境によってはRedisが使えなかったり(物理的に使えないサーバなんてあるんですかね?)
企業にお勤めの方は導入そのものがされていないので使えない!って方も居るかもしれません。
その場合は既存のDBを使用したりすると思いますが、
websocketはリアルタイムでイベントを拾っていくので、
php的には終了させるまで無限ループになっている中で処理を実装する、
とイメージしてみるといいかもしれません。
つまりどういう事かと言いますと、
Databaseを利用する場合は、明確に接続を終了させなければDBが1クエリーずつwaitとなって溜まるので、
あっという間に Too many connections になります。
ここでlaravel4で実際に実装していくと気になる点が1つ
disconnect
公式リファレンスにもtoo manyでたらdisconnectしましょう、とあります。
websocketはループで実装するので、disconnectを記載しますが、
実はQueryBuilderだとsleepになって残る様です。
ですのでシンプルなSQLでここは一つ
DB::connection('foo')->select('select * from users where id = ?', array(1));
とします。
modelをwebsocket関連でまとめているのであれば、
public function __destruct()
{
DB::disconnect('foo');
}
関係ありませんがweblioによると、わくわくする日本語訳になりますね!