所以我有一个节点。使用 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!');
});
});
}