CloudFoundryでSocket.ioを試した(失敗)
CloudFoundryでNodeを試してる続きです。(前回:CloudFoundryでNode+MongoDBを動かした)
app.jsに以下を追加して、とりあえず接続者数を表示するようにしてみました。
var socket = io.listen(app);
var count = 0;
socket.on('connection', function(client){
count++;
client.broadcast(json({count: count}));
client.send(json({count: count}));
client.on('message', function(message){
client.broadcast(message);
client.send(message);
});
client.on('disconnect', function(){
count--;
client.broadcast(json({count: count}));
});
});
クライアント側のJavaScriptはこんな感じ。
var socket = new io.Socket(host_url.split(':')[0]);
socket.connect();
socket.on('message', function(message){
$('#count').text(JSON.parse(message).count);
});
ほとんどExpressとSocket.ioを使ったWebSocketのサンプルを作る - 自分の感受性くらいのパクりです。
実際にhttp://instanode.cloudfoundry.com/にデプロイしてみましたが、どうもxhr-pollingになってしまっています。
やはりnginxの後ろにいるからWebSocketはNGということでFAでしょうか。
やり方があったら知りたいなぁ。