FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

名前の由来

「ちゃってら」という名前は、
「ちゃっとしてらっしゃい」の略です。
チャットで、「いってらっしゃい」を「いってら」というような感覚でつけました。

http://chattera.net/

スポンサーサイト

SELinuxの罠

ここのVPSでなくて、開発するときにvmwareでCentOSを使っていたときのことです。
別PCのFlashDevelopで更新したswfファイルをアップロードしてブラウザで画面を表示しようとするけど、表示できないことがありました。
修正が悪かったのかと思って、修正を少しずつ元に戻していっても、一向に表示できない・・・
結局元のソースにまで戻ったのですが、それでもやはり表示できない・・・
ブラウザのキャッシュに何かあるのかとか、FlashDevelopの設定を変えてしまったのか等いろいろ悩んだ挙句、SELinuxの設定のせいだとわかりました。
SElinuxだと細かくアクセスコントロールを設定しないといけないので、scpでアップロードしたものを所定の場所に移動しただけだと、表面上の所有者は正しくても、SELunix的にはapacheからアクセスできないようになっていました。
しかたがないので、SELinuxを使わないようにしてしまいました。。。
難しいですね。

ちなみに
■今すぐSELinuxを切る
echo 0 > /selinux/enforce
■次回起動時からずっとSELinuxを切る
/etc/selinux/config で SELINUX=disabled

http://chattera.net/

Flashでの接続

このチャットシステムは、ブラウザ側にFLASHのオブジェクトをおいて、それがサーバとSocket通信し、FLASHはJavascriptとやり取りするようになっています。
このシステムではSocket通信できればいいので、特にFLASHにこだわっているわけではないので、JavaAppletでもいいのですが、なんとなくというレベルでFLASHにしてみました。
FLASHでの開発はFlashDevelopというフリーのソフトを使ってみました。
ただ、FLASHでSocketを使うには、ポリシーファイルというのをサーバにおいて、それを決まったポートで待ち受けるという面倒なことをしないといけないので、実際にVPSのサーバにおいて、うまく動くかどうかは結構ドキドキでしたね。

http://chattera.net/

VirtualHostを設定してみた

VirtualHostを設定してみました
いまはでは http://chattera.net/のリクエストを
http://chattera.net/chat/home.phpにリダイレクトしていましたが、
SEO的にも、通信量的にもよくないみたいなので、
http://chattera.net/のアクセスを、http://chattera.net/chat/にしようと思いました。
しかし、いまさらchat以下をひとつ上のディレクトリに移動するのも面倒なので、
chattera.netへのアクセスが chatの場所がDocumentRootになるように
VirtualHostを設定してみました。
いまのところうまくいってるみたいですが、
何か問題があるかしばらく見守ります。

http://chattera.net

Poderosa

うちは、sshでVPSサーバに入るのに、Poserosaをつかっているけど、
みんなは何を使ってはいっているんのかな。
TeraTermなんだろうかな。
Poderosaは画面内を分割して使えるので便利。
だけど更新とまっている。もう更新しないのかな・・

http://chattera.net
遊びにきてね

接続が切れる問題

FLASHとサーバがSocketで接続しているので接続が切れる問題が発生します。
ひとつは、通信がない状態でしばらくおいておくと、途中の機器が接続をきったりします。
これはリロードして情報を更新するようにすればいいのですが、サーバに負荷かけるのも嫌だったので、TCPのKeepAliveを短くすることで対応しました。
もうひとつの問題は通信中に、本当に接続が切れてもすぐにはわからずに、延々とリトライする問題です。
チャットだとすぐに発言が反映されて欲しく、時間がたってから反映されても、もうあきらめて画面を閉じてしまう可能性が高いので、通信のリトライは短くしようと思いました。
これはTCPのtcp_retries2という値を書き換えればいいらしいので
echo 5 > /proc/sys/net/ipv4/tcp_retries2
などとしてリトライ数を短くしました。(初期値は15らしい)
これで、通信失敗すると早めに接続が切れるようになったと思うのですが、
ちゃんと機能しているかはサンプルが少ないのでよくわからないですね。

http://chattera.net


ブラウザによって動かないものがある

FLASHをつかってサーバと接続しているためか、ブラウザによっては動かないものがあるようです。
いつもはGoogle Chromeを使っていますが、FireFox7や10やInternetExplore8では動いています。
しかし、InternetExplore7では動かなかったという報告もあります。
こちらでいろいろな環境を用意してテストする余裕はないので、今のところどうしようもないですね・・

そんなこともあって、みなさんに訪問してみて欲しいですね。
http://chattera.net

何人同時にチャットできるんだろう

何人同時にチャットできるんだろう
VPSは一番安いプランで、CPU2個、メモリ512Mのものです。
一人当たりの接続で100バイトも使わないので、1000人同時に接続しても100Kbytesもいかないので、メモリは足りそうですね。
問題はCPUとネットワークかも。
1000人同時に接続して、平均10秒に1回発言し、発言のデータ転送量が100bytesだった場合、発言あたり10msecで処理すればいいので、CPUはなんとか足りそうで、ネットワークの転送も10KBytes/secくらいなので、足りそうです。
しかし、発言以外にも、トップページにアクセスしたり、部屋に入室退室する際に、Apache,PHPやPostgreSQLの処理が動くので、これがどのくらいになるかがキーでしょうね。
実際にはそんな人数で試せるはずもなく、絵に描いたもちのようなものですが。。
http://chattera.net

通信方式をきめる

チャットの発言をしたら、リロードせずにすぐに相手方に反映したいので、それを実現するためにはSocketで通信するのがいいなと思いました。
そうなると普通のレンタルサーバではできなさそうなので、VPSになるのかなとおもって探してみると、1ヶ月1000円くらいであるんですね。
このくらいなら、懐が痛まないのでいいですね。
あとは何を使って、Socket通信するか考えて、ブラウザ側ではFLASH、サーバ側ではCで書くことにしました。
ブラウザではFLASHを媒介してJavaScriptで画面を制御し、サーバ側で1つのプロセスに複数ブラウザから接続を受けて、リアルタイムにチャットを送受信するという感じです。

そういうわけで、そのまわりの部分もいれて、ソフトウェアの構成は
・ブラウザ
 FLASH, Javascript,jquery
・サーバ
 Apache, PHP, PostgreSQL, C, Perl
というような感じになっています。

http://chattera.net

チャットのサイトつくってみた

あるとき、急に思い立って、チャットのサイトを作ってみようと思いました。
気軽に利用できるように、登録はしなくてよくて、名前(ニックネーム)を設定すればすぐにチャットできるというのと、リロードを待つのはまどろっこしいので、すぐに発言が反映するというのが、主な要件です。

そしてしばらく奮闘してつくったのが
チャッてら
です。
まだ試作段階で機能も色々追加していきたいですが、興味がある方はぜひお立ち寄りください。
プロフィール

chattera.net

Author:chattera.net
フリーでソフト開発の仕事をしています。
自作したこのチャットシステムは、何か世の中に役に立つこともあるかと思いますので、お呼びがかかるとうれしいですね。

連絡先は chatteranet@gmail.com です。

また、ソフト開発関連のお誘いもうけたまわっております。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。