タグ

ブックマーク / blog.mikage.to (6)

  • マルチコアでスケールしないErlang その2 - みかログ

    telnet接続で計算問題を出題する (fujishinko 雑記帳) jquery history プラグインアップデート (みかログ) Logicool MX Revolution (RedWing's Blog) Erlang で memcached を作ってみました。 (DSAS開発者の部屋) [erlang]proc_lib で echoserver を書き直した (cooldaemonの備忘録) [security] PHPセキュリティ続き (Angelic Wing) [Erlang][Programming][Erlday][Comet][Yaws] Erlang for everyday use (3) (ZHlog) [Prog (ひおにっき) [Prog (ひおにっき) ErlangからPerlを使う (404 Blog Not Found) というわけでスケールし

    マルチコアでスケールしないErlang その2 - みかログ
  • OperaはComet+JSONP出来ない - みかログ

    IEとCometの相性が悪いで書いた問題を回避するため,複数ドメインを使うことにした. まぁ,この問題の他にも,同一ドメインには同時2しか接続がはれないので,そのドメインで同時に1つしか閲覧されないという前提が無い限りは,複数ドメインにしておいた方が良いと言うこともあった. 複数ドメインに分けると,クロスドメインの制約があるためにAjaxが使えなくなる. そこで,JSONPを使うわけだけども,ここでまた問題が... OperaでJSONP+Cometすると,Cometの応答が返ってくるまで,すべてのJavaScriptが止まってしまう. どうやら,scriptタグでスクリプトを読み込んでいる間は,JavaScriptの実行が止まってしまう模様. 仕方なく,Operaの場合はAjaxを使うようにして回避... また,scriptタグを付け足す方式なので,エラーチェックが出来ないのも難点.

    OperaはComet+JSONP出来ない - みかログ
    kazuhooku
    kazuhooku 2007/06/01
    なるほどです
  • IEとCometの相性が悪い - みかログ

    IEでチャットにログインして,リロードしたりすると,反応が無くなる,という問題があるようで,調べてみた. Firefoxの場合,Ajaxでサーバに接続中にリロードすると,その接続は切断される. リロードした以上,そのページで発行したAjaxリクエストは処理を続行する必要がないと思うので,切断するのが普通なのではないかと思うのだけども,IEはそうではない模様. IEの場合,リロードしても接続したコネクションが張りっぱなしになってしまう. 1ホストに対して同時2コネクションの制限はその状態でも有効なため,追加のAjaxリクエストが待たされて,投稿が出来なかったり,応答が無かったりするということのよう. 今のチャットだと,入室後に新規発言を待っている時は,Cometコネクションが1. そこでリロードすると,ページを表示し直すため,もう1回Cometコネクションが追加で張られる. 入室ボタンを押

    IEとCometの相性が悪い - みかログ
    kazuhooku
    kazuhooku 2007/05/17
    なるほど。IE7だと XHR.abort() があるんだろうけど...
  • jQueryでKeep-Aliveされない問題 - みかログ

    ErlangでCometのサンプルを利用されている方から,Connection: close になっているよ,との指摘をいただいた. で,早速調べてみると,IE・FirefoxではKeep-Aliveだが,Firefoxではcloseになってしまう. ブラウザ側がリクエストするときに,Connection: close をつけているので,サーバ側の問題ではないようだ. jQueryのソースを見てみると, // Make sure the browser sends the right content length if ( xml.overrideMimeType ) xml.setRequestHeader("Connection", "close"); というコードがあった. ぐぐってみると,prototype.jsでも同様の処理がある模様. /* Force "Connection:

    jQueryでKeep-Aliveされない問題 - みかログ
    kazuhooku
    kazuhooku 2007/05/08
    なるほど。勉強になります。Mozilla/1.8a4 で修正ってことは Firefox/1.5 より前の問題だから(だよね?)、無視していいんじゃないかと (あるいは User-Agent で判定するか)
  • みかログ: ErlangでComet

    ErlangでCometしてみた. (iframe方式は結局だめそうなので,Cometに) Comet チャットサンプル 実装はきわめて手抜きです.あくまでサンプルとして. ソース: chat.erl (22行.etsテーブルの初期化) chat.yaws (72行.サーバ側の実装) index.html (52行.HTML+JS) ※別途jqueryが必要 こんだけ短いソースでも,ちゃんとCometできるし,C10Kにも対応できる.(問題はいろいろあるコードだけど) いろいろちゃんと実装したとしても,かなりシンプルに仕上がると思う. Comet の正しい使い方で紹介されているプログラミングモデルのどれにも当てはまらない新しい方式,といえるかも. Cometのために特殊な実装をする必要もないし,I/O多重化など実装がめんどくさい手法を使う必要もない. 普通に各リクエストの処理を書いて,新規

    kazuhooku
    kazuhooku 2007/05/06
    おもしろい
  • チャットをCometより楽に実装する方法 - みかログ

    JavaScriptベースのチャットを作るとき,Cometを使うのが一般的とされているようだけど,もっと楽な方法でも良さそうに思える. Cometでは1回リクエストを受け取るたびにコネクションを切断しているので,Keep-aliveなどと併用しなければならない. 実際に都度TCP接続を張り直すとコストが大きいので,Keep-Aliveを併用したりする必要があるものの,それも色々裏技的な回避をしないとだめな模様. (Cometの正しい使い方を参照) でも,チャットを実装する上では,都度コネクションを切断する必要がなさそうに思える. iframeで別のページを読み込み,その中で script タグを使って親フレームを更新するだけではダメなのだろうか. この方法であれば, ・Cometのように,切断してから再接続するまでのタイムラグがないので,サーバ側の余計な処理が減る.(切断中に届いたメッセー

    チャットをCometより楽に実装する方法 - みかログ
    kazuhooku
    kazuhooku 2007/05/01
    throbber が回ることさえ気にしないのなら、それでOK。切断時の対応コードを含めると、コード量はかわらないと思う。iframe なら document.domain 操作でサブドメイン越えが可能
  • 1