ShootingStar
ruby で comet を利用した Web アプリを作成しようと思い,調べてみると,ShootingStar というコメット対応サーバがありました.
(ちなみに,Java だと Tomcat6 で CometProcessor や CometEvent を使う)
とりあえず動かす
とりあえず,チュートリアルを.
Making A Chat System Within 5 Minutes
http://shooting-star.rubyforge.org/wiki/wiki.pl?Making_A_Chat_System_Within_5_Minutes
OS:ubuntu 8.04
ruby:1.8.6
rails:2.0.2 (たぶん.この記事を書く前に update しちゃったんでうろ覚え.)
つまずき 1
shooting_star init
shooting_star が見つからなかったので,とりあえず
/var/lib/gems/1.8/bin/shooting_star init
でしのぐことに.
つまずき 2
config/database.yml
チュートリアルのままではエラーになったので,以下のように修正.
development: adapter: mysql encoding: utf8 database: shot_chat_dev username: shot_chat password: shot_chat socket: /var/run/mysqld/mysqld.sock shooting_star: server: localhost:8080 shooter: druby://localhost:7123 random_subdomain: false
ちなみに,修正前だと
"shooting_star"=>
{"shooter"=>["druby://localhost:7123"],
"server"=>["mydomain:8080"],
"random_subdomain"=>false}
で,修正後だと
"shooting_star"=>
{"shooter"=>"druby://localhost:7123",
"server"=>"localhost:8080",
"random_subdomain"=>false}
となる.
つまずき 3
開発環境には Rails 2.0 が入っているため,ActionController::InvalidAuthenticityToken が発生しました.
以下のページに詳細が紹介されており,非常に助かりました.
今回はサンプルとしてローカルで動かすだけなので,スキップしておくことに.
class ChatsController < ApplicationController layout 'chats', :only => 'index' skip_before_filter :verify_authenticity_token def index @chats = Chat.find(:all).reverse ...
つまずき 4
Rails2.0 では scaffold_resource → scaffold なので,
./script/generate scaffold chat name:string message:string
動いた!
無事動きました.
この後,ShootingStar のコードを読んでみようと思います.
そういえば,よく考えたら Rails 使ったの今回が初めてだ...
(ActiveRecord だけとかなら使っていたけど)