【发布时间】:2017-08-15 11:58:26
【问题描述】:
我有一个在 apache 服务器中工作的前端 angularJS 应用程序(客户端),它的 API 调用被发送到在 NodeJS 中运行的后端应用程序(服务器)。现在我想在客户端和服务器之间建立一个套接字连接。 我正在使用 cors npm 模块解决跨域问题,但它不起作用。
我已经看到了几个解决方案,但没有一个对我有用。
这是我的服务器端代码:
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');
我在浏览器控制台中得到的错误是:
socket-io.js:4948 GET http://localhost:8000/socket.io/?EIO=3&transport=polling&t=LhvWuIr 404(未找到)
在服务器控制台中:
GET /socket.io/?EIO=3&transport=polling&t=LhvUygM 404 18.881 ms - 1153
请帮忙!!!
【问题讨论】:
-
您的错误是否在控制台中说明了有关 CORS 的任何内容??
-
没有。后端控制台中的唯一错误是 ==>GET /socket.io/?EIO=3&transport=polling&t=LhvhEJB 404 3.971 ms - 1153
标签: javascript angularjs node.js apache sockets