WebSockt Chatについて

4 views
Skip to first unread message

tato

unread,
Nov 30, 2010, 4:21:49 AM11/30/10
to socketapi-dev
2011/11/26 から、API multi-echoを利用したWebSocket Chat(websoket-chat)をコントローラー
へ usersIndex : 1 として追加したので、、、

それぞれのアカウントで、multi-echo とは別に WebSocket Chat を使えるようになっていますが、これは今月中に結構改造する
予定です。

というわけで、このチャットを今深くいじってしまうと、改定後に悲しい思いをすることになりますのでご注意ください(_ _;

まぁ、全般に、そういう改造はまだまだありそうな気もするんですけれど、、、^^;。

tato

unread,
Dec 1, 2010, 9:38:27 AM12/1/10
to socketapi-dev
すみません。「今月中」は、「11月中」ではなくて「12月中」です(_ _;

tato

unread,
Dec 11, 2010, 11:38:50 AM12/11/10
to socketapi-dev
高橋登史朗です

明日あたり、WebSockt Chatのコマンド周りを修正します。


1.今まで、コマンド発行時のレスポンスがIPベースで戻っていたのを、コネクションベースに変更します。

これにより、同一IP内のPCやブラウザに、コマンドレスポンスが漏れることは無くなると思います。

原則、コマンドレスポンスは、コマンド発行者にだけ返るという考えです。

WebSockt Chatでは、最初のコネクション時に、過去ログを取得しますが、それをlogコマンドでとっていたので、コマンドレスポンスが漏れ
ると、同一IP内の他人の接続レスポンスが流れてくるという悲しいことになるためです。

この、修正は、後日、multi-echo本体でも修正されます。


2.log取得コマンドの between 引数を廃止して limit 引数で置き換えます。これに伴い、WebSockt Chatの

 //過去ログ設定
 logffset: 1, //最初に取得するログの開始位置(0が最新だけど0は自動で取れるので1にしておく)
 logMax: 100, //最初に取得するログの終了位置

は、こうなります。

 //過去ログ設定
 logStart: 0, //最初に取得するログの開始位置(省略で0。0が最新だけど0は自動で取るので1にしておく)
 logLength: 100, //最初に取得するログの件数

logコマンド自体は、

今まで、ws.send( JSON.stringify( [{},{"log": ""}] ) );で送出すると、

*レスポンス [[ [100,1289050797564,{"msg": "nn", "name": "g"}],
[99,1289050794322,{"msg": "nn", "name": "f"}],[98,1289050792655,
{"msg": "a", "name": "f"}],[97,1289050788414,{"msg": "a", "name":
"f"}],[96,1289050784889,{"msg": "a", "name": "teddd"}],
[95,1289050780147,{"msg": "htyui", "name": "teddd"}],[94,1289050779247,
{"msg": "aaa", "name": "teddd"}],[93,1289050774589,{"msg": "aaa",
"name": "teddd"}],[92,1289050770264,{"msg": "aaa", "name": "test"}],
[91,1289050769139,{"msg": "hello!", "name": "test"}] ],{"cmd": {"log":
""}}] //デフォルト。最新logを0番として、1番から10番まで取得。

こんなレスポンスでしたが、これは変わりません。これを引数between付きで、

ws.send( JSON.stringify( [{},{"log": ["between", 2, 5]}] ) );と送出すると、

*レスポンス [[ [116,1289051079863,{"msg": "ccccc", "name": "b"}],
[115,1289051072663,{"msg": "ddd", "name": "a"}],[114,1289051065589,
{"msg": "world", "name": "test"}],[113,1289051062028,{"msg": "hello!",
"name": "test"}] ],{"cmd": {"log": ["between", 2, 5]}}] //最新logを0番として、2
番から5番まで取得。

こうでしたが、このbetweenをlimitに置き換えます。

書式は、{"log": ["limit", 開始位置, 長さ]} で、最新を0とする開始位置から数えます。


これも後日、multi-echo本体でも修正します。

tato

unread,
Dec 29, 2010, 8:19:23 AM12/29/10
to socketapi-dev
WebSockt Chatの各コマンドがほぼ100倍速くなりました。
全員のサーバーへ反映済みです。今回の反映は、websoket-chatのみで、multi-chatへの反映は後日。

サーバーとの距離で当然遅くはなると思いますが、最も至近のうちでは、約3~5/1000秒以内程度で各コマンドのレスポンスが取れています。

ベンチ: http://socketapi.com/ref/sample/bench.htm?wschat1
Reply all
Reply to author
Forward
0 new messages