我有一個前端angularJS應用程序(客戶端)在Apache服務器中工作,其API調用發送到在NodeJS中運行的後端應用程序(服務器)。現在我想在客戶端和服務器之間建立一個套接字連接。 我使用cors npm模塊進行跨域問題,但它不起作用。Socket.io跨域問題
我已經看到了幾個解決方案,但他們都沒有爲我工作。
這裏是我的服務器端代碼:
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); })
});
服務器工作在http://localhost:8000/
這裏是我的客戶端代碼:
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();
}
};
}
我angularJS創建的上述工廠將其稱爲內部函數,如下所示:
var socket=PermitFactory.socket();
socket.emit('message', 'ssss');
我在瀏覽器控制檯得到的錯誤是:
插座io.js:4948 GET http://localhost:8000/socket.io/?EIO=3&transport=polling&t=LhvWuIr 404(未找到)
而在服務器控制檯:
GET /socket.io ?/ EIO = 3 &運輸=輪詢& T = LhvUygM 404 18.881毫秒 - 1153
請幫助!
你的錯誤在控制檯上說了CORS的任何內容? –
否。後臺控制檯中唯一的錯誤是==> GET /socket.io/?EIO=3&transport=polling&t=LhvhEJB 404 3.971 ms - 1153 –