只在socket.io上“轮询”

我有两个应用程序在openshift v2托pipe,都有相同的代码 ,第一次使用Node.js 0.10和socket.io完美的作品。 第二个应用程序使用Node.js 8.2.1,但socket.io不起作用,我得到了与在这些其他网站相同的错误:

客户端在socket.io上接收轮询

Socket.io无法连接,请求“投票”

Socket.io连接恢复到轮询,从不触发'连接'处理程序

我试图做出答案,但没有结果,如果代码在我的两个应用程序是相同的。什么可以失败? 有必要对新版本的Node.js进行一些更改?

这是我的应用程序中的相关代码和有关它的信息:

这两个应用程序在8080或3000端口上运行完美。

服务器

App.js

var fs = require('fs'); var express = require('express'); var app = express(); var server = require('http').Server(app); var bodyParser = require ('body-parser'); var jwt = require('jsonwebtoken'); var io = require('socket.io')(server); var server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1'; var server_port = process.env.OPENSHIFT_NODEJS_PORT || 3000; server.listen(server_port, server_ip_address, function () { console.log( "APP Listening on: " + server_ip_address + ":" + server_port ) }); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({extended: true})); app.use(express.static(__dirname + '/')); app.get('/', function (req, res) { res.sendFile(__dirname + '/index.html'); }); io.on('connection', function (socket) { console.log('USUARIO CONECTADO'); socket.on('coordenada', function (data) { io.emit('notificacion', { Latitud: data.latitudData, Longitud: data.longitudData, Nombre: data.name }); }); }); 

客户

Controllers.js

app.controller('mapCtrl',函数($ scope,NgMap,socket){

 vm = this; socket.on('notificacion', function(data) { console.log("coordenada recibida: ", data.Latitud +","+ data.Longitud +" de "+ data.Nombre); var name = data.Nombre; vm.transportistas = [ {id:'1', nombre: data.Nombre, posicion:[data.Latitud, data.Longitud]} ]; NgMap.getMap().then(function(map) { vm.map = map; google.maps.event.trigger(vm.map, 'resize'); }); }); vm.wayPoints = [ {location: {lat:39.502223, lng: -0.363244}}, ]; NgMap.getMap() .then(function(map) { vm.map = map; vm.map.setZoom(6); vm.map.setCenter(new google.maps.LatLng(40, -4)); }); vm.mostrarDetalles = function(e, transportista) { vm.transportista = transportista; vm.map.showInfoWindow('foo-iw', transportista.id); }; 

});

factorias.js

 app.factory('socket', ['$rootScope', function($rootScope) { var socket = io.connect(); return { on: function(eventName, callback){ socket.on(eventName, callback); }, emit: function(eventName, data) { socket.emit(eventName, data); } }; }]); 

我只能在Node.js 8.2.1的应用程序中在Web控制台上获得此信息:

 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850081140-15 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850080247-12 GET http://localhost/socket.io/?EIO=3&transport=polling&t=1448850080252-13 etc... 

**我很抱歉我的英语。