@hakoberaさん
やりたい負荷テストは、おしえて頂いた方法で実現できそうです!
ありがとうございます。

socket.io-clients側のtransportのoptionを指定してみたのですが、
うまくxhr-pollingで接続できず、タイムアウトになってしまう状況です。

環境は下記のような環境です。
OS: CentOS release 5.7 (Final)
Node: v0.6.19
Socket.IO: v0.9.10
Socket.IO-Client: v0.9.10

いくつか試したパターンは下記のような結果でした。
client                  -->   server
指定なし            -->  指定なし              (websocketで問題なく動作)
指定なし            -->   xhr-polling指定    (タイムアウト)
xhr-polling指定   -->  指定なし              (websocketに切り替わって動作)
xhr-polling指定   -->  xhr-polling指定     (タイムアウト)

※ 動作したと判断している場合は、「任意に指定しているイベントのやりとりができた」
という状態です。
※ タイムアウトになる場合も、server側のログでは、authorizationを通り、
socket.idが発行されているようでした。

nodeやmoduleのバージョンでうまく動いていないかもしれないので、
バージョンなどを変えてもう少し触ってみます。ソースなども少し追ってみます。

何か進展があればまたこちらに書きたいと思います。
また相談させて頂くかもしれませんが、よろしくお願いします。







2012年8月27日月曜日 16時48分03秒 UTC+9 hakobera:
>
> 本多@hakobera です。 
>
> 複数の transport が混在した環境をテストしたいというのであれば、 
> transport 層を固定したクライアントを option 指定で別々に作れば良いのではないでしょうか。 
>
> var uri = 'http://domain.com'; 
>
> // for WebSocket 
> var socket_ws =  io.connect(uri, { 
>   transports: [ 'websocket' ], 
>   'force new connection': true 
> }); 
>
> // for XHR-Polling 
> var socket_xhr =  io.connect(uri, { 
>   transports: [ 'xhr-polling' ], 
>   'force new connection': true 
> }); 
>
> 各オプションの詳細は以下を参照してください。 
> https://github.com/LearnBoost/socket.io-client#options 
>
> force new connection はマニュアルに書いてないですが、 
> これ書かないと、同じURLの場合にコネクションが使いまわされてしまい、 
> 何個ソケット作っても実質1クライアントで負荷テストになりまし、 
> 2つめ以降の options の設定が効きません。 
>
>
> https://github.com/LearnBoost/socket.io-client/blob/master/lib/io.js#L192-200 
>
> 2012年8月27日 16:21 uchida75cm <[email protected] <javascript:>>: 
> > こんにちは、uchida75cmといいます。 
> > 
> > Socket.IOサーバを使ったサービスの負荷テストをしたいと考えています。 
> > transportsがwebsocketだけの場合には、socket.io-clientsなどで、 
> > 複数接続を行い、検証することができるかと思うのですが。 
> > 
> > IEなど、xhr-pollingを利用するブラウザが混ざってくるような場合の環境を 
> > シミュレーションして、負荷テストする方法はないでしょうか。 
> > 
> > 何か良い方法があればご教授いただけると幸いです。 
> > よろしくお願いします。 
> > 
> > -- 
> > 
> > 
> > 
>

-- 



メールによる返信