要解决"ActiveMQ - Stomp通过WebSockets - 同源策略"的问题,你可以使用代理服务器来绕过同源策略限制。以下是一个示例代码,演示如何使用Node.js和Express框架设置一个代理服务器:
首先,安装必要的依赖:
npm install express http-proxy-middleware
然后,创建一个名为proxy.js
的文件,并将以下代码复制到文件中:
const express = require('express');
const { createProxyMiddleware } = require('http-proxy-middleware');
const app = express();
// 配置代理服务器
app.use(
'/stomp', // 将请求转发到的目标地址
createProxyMiddleware({
target: 'http://localhost:61614', // ActiveMQ服务器的地址和端口
changeOrigin: true,
ws: true,
})
);
// 启动代理服务器
app.listen(3000, () => {
console.log('Proxy server is running on port 3000');
});
接下来,在命令行中运行以下命令启动代理服务器:
node proxy.js
现在,你可以通过访问http://localhost:3000/stomp
来访问ActiveMQ服务器,同时绕过同源策略限制。请确保将代码中的http://localhost:61614
替换为你的ActiveMQ服务器的实际地址和端口。
使用上述代理服务器,你可以通过WebSocket连接到ActiveMQ服务器,而无需担心同源策略限制。