0

所以我有一个节点。使用 express 构建的 Node.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 是存储在stormpath 上的自定义数据数组作为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!');
    });
  });


  }
4

0 回答 0