高橋登史朗です
明日あたり、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本体でも修正します。