我有一个工作在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获取http://localhost:8000/socket.io/?EIO=3&transport=polling&t=LhvWuIr 404(未找到)
在服务器控制台中:
GET/Socket.IO/?EIO=3&TRANSPORT=轮询&t=LhvUygM 404 18.881 ms-1153
请帮帮我!
3条答案
按热度按时间olqngx591#
您得到的是
404 (Not Found)
,这意味着问题出在您的URL而不是CORS中。http://localhost:8000/
服务器启动了吗??套接字服务器..如果是,则在wss://localhost:8000/
或wss://localhost:8000/
之前执行wss
和ws
rt4zxlrg2#
在服务器端脚本上允许跨域,将其放在app.js上
支持CROS原点的Google Chrome插件
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?hl=en
u7up0aaq3#
在您的客户端尝试这种方法,这将会起作用。