フロントエンドのangularJSアプリケーション(クライアント)がapacheサーバーで動作し、API呼び出しがNodeJSで実行されているバックエンドアプリケーション(サーバー)に送信されています。今私は、クライアントとサーバーの間のソケット接続をしたい。 クロスドメインの問題に対してcors npmモジュールを使用していますが、動作しません。Socket.ioクロスドメインの問題
私はこれに関するいくつかの解決策を見ましたが、どれも私のために働いていません。ここで
は私のサーバー側のコードです:サーバーは、ここでhttp://localhost:8000/
で働いている
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); })
});
は私のクライアント側のコードです:
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 http://localhost:8000/socket.io/?EIO=3&transport=polling&t=LhvWuIr 404(見つかりません)
を取得し、サーバコンソールで:
GET /socket.io /?EIO = 3 &トランスポート=ポーリング& t = LhvUygM 404 18.881 ms - 1153
ご了承ください!
あなたのエラーはコンソールのCORSについて何か言っていましたか? –
いいえ、バックエンドコンソールの唯一のエラーは==> GET /socket.io/?EIO=3&transport=polling&t=LhvhEJB 404 3.971 ms - 1153 –