M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2011年9月20日 05:58

Mojoliciousサンプルは古いとメソッド変わっていて動かないことがある

このエントリーをはてなブックマークに追加 mixiチェック

どこで作っているかは言えない某サイトでは、どっかで見たことある表現や見たことないギミックなどが僕の手作りで作りこまれているのですけれども、もしかしたらサーバからプッシュで情報が出せるならもっとお客さまに役立つサイトになるかなーとか思ったので、

Mojolicious::Lite で WebSocket を使ったチャットを作る - naoyaのはてなダイアリー [d.hatena.ne.jp]

を見て、Mojoliciousでサーバからプッシュで情報が出せるWebSocketができるんだーということで、早速やってみました。

んで、僕の場合

  • サーバ:ServersMan@VPS(CentOS 5)
  • クライアント:Google Chrome 14(Windows 7)

という構成ですので、たとえばCentOS 5側では、Firewallで3000番のポートに穴をあけてあげたり、クライアント側からサーバへ接続しに行くためのURLがlocalhostではなくて実ドメインだったりとかして、そこは書き換え終わったのですけれども、クライアント側のWebSocket接続確率時にどうしてもサーバ側でエラーが発生します(コンソールにエラーが吐き出される)。

で、よーく調べてみますと、ある時期にMojoliciousで大きな改編があり、昔使えていたメソッドが今は使えなくなっていることがわかりました。

最近の主な変更点 - GitHub [github.com]

によると、

  • receive_message()はon_message()に変更されました。(receive_message()はしばらく残されますが、on_message()を使用してください)
  • finished()はon_finish()に変更されました。(finishedはしばらく残されますが、on_finish()を使用してください。)

がモロ該当していました。というわけで、文頭で参照したエントリのソースの、
$self->receive_message を $self->on_message、$self->finishedを$self->on_finishに書き換えることによって解決しました。

ここら辺になってくると、ポートを開けたり閉めたりとか、Mojoliciousのサーバプロセスを立ち上げておいたりとか、普通のWebの知識だけじゃなかなか難しくなってきますね。Linuxサーバを立てたりしてた時の経験が若干生きてくるかなあ。

投稿 大野 義貴 [Web] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3715

コメントする