忍者ブログ

開発者ブログ

忍者ブログの元開発者が送る愛と感動と涙のスペクタクル。プログラムの開発日誌やタダの日記です。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

RTMPとRTMFPでチャット

こんにちは。水野です。

こないだから記事で書いているRTMPとRTMFP、そしてKamaitachiを使って一個チャットサービスを作ってみたんです。

chate.jp

こんなの。

ワンタッチでライブチャットを作れちゃうサービスなのです。
一応ライブチャット要らねえよって方のために普通のサービスも用意しているのですが。

実際のサービスはこっちで見れますよ。

実際に動いてる奴


まだ結構バグがあるので、ちょこちょこっと直してからどっかで公開したいと思います。


拍手[1回]

PR

Kamaitachiの件

こんにちは。水野です。

前回Kamaitachiの件を書いてから、1週間以上が経ちました。

なんだかんだで今もがつがつと使わせてもらってます。
なので今日はその、Kamaitachiの件について。

KamaitachiはKAYACさんのtypesterさんという方が作られています。
Kamaitachiは以下のようなことをするためのPerlモジュールです。

・リアルタイム通信を行うもの
・RTMPを利用した通信
・AMFフォーマットを扱う

Kamaitachiは以下のようなモジュールを使います。
・Moose
・IO::Handle
・IO::Socket::INET
・Data::AMF
・Danga::Socket
・Danga::Socket::Callback



Kamaitachiには4種類のサンプルが入ってます。
サーバーサイドもクライアントサイドもソースが入っているので、それを参考にするとすぐにでも扱えちゃうと思います。
僕でも扱えたので。

【クライアント側】
ActionScript3辺りで、NetConnectionを使って接続します。

nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, status_handler);
nc.objectEncoding = ObjectEncoding.AMF0;
nc.client = this;n.connect("rtmp://hostname/path/to/");

こんな具合。
AMFを使うので、トラフィックが少し軽減されるのかな?
プロトコルはrtmpを指定して、サーバーのPATHを書きます。


データの送信は以下のような感じ

var data:String = '送りたいデータ';
nc.call("methodname", new Responder(null), data);

methodnameはサーバーサイドのメソッド名になります。

【サーバー側】
サンプルにあるserver.plを動かします。


server.plの中にある

$kamaitachi->register_services

こいつで実際に動作させるクラスを登録してあげます。

$kamaitachi->register_services(
'path/to' => 'Service::ServiceName',
);

path/toはクライアント側でコネクトする際のパス(rtmp://hostname/path/to)です。

Service::ServiceNameは自分で用意するクラス

server.plを動かすとrtmp(1935番)をLISTENします
FMS(FCS)が使うポートですね。


次に、実際に処理をするクラスを置きます。
(lib/Service/ServiceName.pmとか)

Moose
Kamaitachi::Service
Kamaitachi::Service::AutoConnect
Kamaitachi::Service::Broadcaster

辺りを使います。
Kamaitachi::Servce::*の中が実際に使われるコードが良く書かれてます。
量がそんなに無いので、見てみると何となく理解出来ちゃうと思います。


で、用意してあげるクラスに、sub on_invoke_**** {}なんてサブルーチンを用意してあげます。
****の部分がクライアント側で
nc.call("methodname", new Responder(null), data);
で呼びだしたmethodnameになりますね。

つまり、この部分で行いたい処理を書いていきまっす。

あとはそのサブルーチンの中で値を受け取る→同じセッションの奴に値を送るなんて処理を書くだけです。

拍手[0回]

漫画チャットのミーティング

こんにちは。水野です。

僕はちょっとだけ漫画チャットに携わってるのです。
ほんのちょっとだけ。

漫画チャットチームでは、週一回進捗確認や企画に関するミーティングがあります。

今日がそのミーティングの日。

ミーティングはみなさん真剣そのもの。
不真面目なサービスも、超本気で話し合うので意見がぶつかり合うことも。

しかし、みんなの意見をぶつけ合って時には殴り合い、時には罵り合い、蔑み、憎しみ合って出来ていくんです!

しこりが。


そんなミーティングでは、きちんとノートを取ります。
今日の僕のメモはこんなのでした。



真剣さがひしひしと伝わってくるんじゃないかと思います。

拍手[1回]

漫画チャットのこと

こんばんわ。

misneyです。


今日は久しぶりに漫画チャットをしたのです。

お友達のくろさんや漣音さんとお会いしたのですが、なんと漫画チャットのキャラクターの作り方を解説するWebページを作成してくれたそうで。


こういう風に、サービスを使ってくれる方が色々としてくださるのはとても嬉しいことなのです。


kuro.jpg    haru.gif



くろさんが作ってくれたブログ
ハルさんが作ってくれたWeb



まだ作っている最中らしいので工事中のとことかもあるみたいなのですが、ちょっとフライング気味に宣伝しちゃっておきます!
なんか、超ボリュームたっぷりで分かり易くて凄いのです。プロです。

本当にみなさん、いつもありがとうございます♪
負けないように頑張りたいと思います!

拍手[0回]

RTMPとRTMFPとKamaitachi

こんにちは。水野です。

今日はRTMPとRTMFPとKamaitachiに触れてみました。
社内のツール用にRTMPを使いたいなと思ったのが発端。

Alu君曰く、RTMFPというものがあるという話。
簡単?にp2pがFlash Player上で出来てしまうらしい。

早速調べてみたのです。
参考にしたのはこの辺

blog.katsuma.tv
Stratus Sample Application

うん。なんか面白そうなのです。
・・・でも、今のところp2pよりもクライアントサーバータイプが良かったので、一通り遊んでから次へ。

まずはサーバーをどうしようと思って探していたところ、KAYACさんがperlで動作するKamaitachiなるものを出しているらしい。

Kamaitachi

Perlを触るのは実に4,5年振りなのです。
さっぱり意味が解らないまま必要な物をCPANからバシバシっと入れて、なんとか実装。

実際に動かしてみました。
出来ることはこんなこと。

同時接続通信(チャットとか)
ストリーミング(ライブ映像とか音声とか)

 

b519e0ca.jpgいいですね。Kamaitachi。
ソースもシンプルで素敵なのです。
サンプルだけでお腹いっぱいになっちゃいました。

これを使ってあんなことやこんなことが出来ちゃうといいなーって思いました。
まずはPerlを勉強しなくちゃ。

拍手[2回]

画像RSS

おまとめボタン

忍者カウンター

忍者ビジター

忍者アド

ブログ内検索

最新コメント

プロフィール

HN:
mizuno
HP:
性別:
男性
職業:
主に侍などを少々
趣味:
競馬
自己紹介:
母子手帳の仮死と書かれてる場所に丸されてます。

フリーエリア

忍者ツールズプロフィール

忍者ツールズプロフィールは終了しました