@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を利用するブラウザが混ざってくるような場合の環境を > > シミュレーションして、負荷テストする方法はないでしょうか。 > > > > 何か良い方法があればご教授いただけると幸いです。 > > よろしくお願いします。 > > > > -- > > > > > > > --
