だから私はノードを持っています。Express を使用して構築された js Web アプリケーション。
このアプリでは、socket.io を使用してカスタム データをノード サーバーに渡し、このデータを stormpath に渡すことになっています。
これをローカルでテストしていたときは問題なく動作しましたが、Openshift で起動したため、ソケットが機能しなくなりました。
ソケットに間違ったポート番号を使用している可能性がありますか? それとも、私はこれを完全に間違っていますか?? 前もって感謝します
サーバー=app.js..
server = require('http').createServer(app, function(request,response){
console.log('Connection');
response.writeHead(200, {'Content-Type': 'text/html'});
response.write('hello socket');
response.end();
}); // by excluding 'var' makes the variable Global
/*io = require('socket.io')(server);*/ // by excluding 'var' makes the variable Global
io = require('socket.io')(8000);
io.configure(function(){io.set("transports", ["websocket"]);});
var index_routes = require('./routes/index');
var auth_routes = require('./routes/auth');
var strategy = new StormpathStrategy({
expansions: 'customData'
});
server.listen(80, function(){
console.log('listening on port %d', server.address().port);
});
次のコードの favlist は、ストームパスに json オブジェクトとして保存されたカスタム データの配列です。
クライアント=script.js...
var socket = io.connect('ws://zaos-cheffernan087.rhcloud.com:8000',{
transports: ['websocket','flashsocket','htmlfile','xhr-polling','jsonp-polling']
});
socket.on('message', function(data){
console.log(data.message + ' has been set to client favourites');
console.log('custom Data = '+ data);
// console.log(data.message.playlist);
var fromStorm = data;
// console.log(fromStorm);
var split = new Array;
for (var j = 0; j < data.length; j++){
split.unshift(fromStorm[j]);
}
インデックス.js.
io.on('connection',function(socket){
socket.emit('message', cd );
/* * * * * * * * * * * * * * * * * * * */
socket.on('client_data', function(data){
nf = data;
process.stdout.write('nf = '+ nf);
update();
});
});
function update(){
req.user.getCustomData(function(err, data) {
var oldStormpath = data.favList;
console.log('oldStormpath = ' + oldStormpath);
data.remove('favList');
data.save(function(err){
if(err) throw err;
});
data.favList = nf;
data.save(function() {
res.send('Your information has been updated!');
});
});
}