Ich habe eine Front-End-angularJS-Anwendung (Client) in Apache-Server arbeiten und seine API-Aufrufe an eine Back-End-Anwendung (Server) in NodeJS gesendet werden. Jetzt möchte ich eine Socket-Verbindung zwischen dem Client und dem Server haben. Ich benutze Cors Npm-Modul für Cross-Domain-Problem, aber es funktioniert nicht.Socket.io Cross-Domain-Problem
Ich habe mehrere Lösungen diesbezüglich gesehen, aber keiner von ihnen funktioniert für mich.
Hier ist meine Server-Seite Code:
var cors = require('cors')
var app = express();
var http = require('http');
app.use(cors({
origin: true,
credentials: true
}));
var server = http.createServer(app);
var io = require('socket.io')(server);
io.on('connection', function(socket)
{
console.log(":::::::::::::::::::::SOCKET:::::::::::::::::::::")
socket.on('message', function(data) {
console.log(data); })
});
Der Server bei http://localhost:8000/
arbeitet mein Client-Seite Code Hier ist:
function socket() {
var socket = io.connect('http://localhost:8000/');
return {
on: function(eventName, callback) {
socket.on(eventName, callback);
},
emit: function(eventName, data) {
socket.emit(eventName, data);
},
getSocket: function() {
return socket;
},
removeAllListeners: function() {
socket.removeAllListeners();
}
};
}
habe ich die oben Fabrik in AngularJS und nannte es innerhalb einer Funktion, wie unten gezeigt:
var socket=PermitFactory.socket();
socket.emit('message', 'ssss');
Der Fehler, den ich in der Browser-Konsole erhalten ist:
pfannen io.js: 4948 GET http://localhost:8000/socket.io/?EIO=3&transport=polling&t=LhvWuIr 404 (nicht gefunden)
Und in der Server-Konsole:
GET /socket.io /? EIO = 3 & transport = polling & t = LhvUygM 404 18.881 ms - 1153
Bitte Hilfe !!!
hat Ihr Fehler irgendetwas über CORS in der Konsole sagen ?? –
Nein. Der einzige Fehler in der Backend-Konsole ist ==> GET /socket.io/?EIO=3&transport=polling&t=LhvhEJB 404 3.971 ms - 1153 –