下面是一个使用Node.js编写的本地主机到实时服务器的转发节点的代码示例。该示例使用了http
和http-proxy
模块来创建一个HTTP代理服务器,将所有的请求转发到目标服务器。
const http = require('http');
const httpProxy = require('http-proxy');
// 目标服务器的地址
const targetServer = 'http://your-realtime-server.com';
// 创建代理服务器实例
const proxy = httpProxy.createProxyServer();
// 创建HTTP服务器
const server = http.createServer((req, res) => {
// 转发请求到目标服务器
proxy.web(req, res, { target: targetServer });
});
// 监听本地主机的端口
const port = 3000;
server.listen(port, () => {
console.log(`Proxy server is listening on port ${port}`);
});
在上述代码中,你需要将targetServer
变量设置为你实时服务器的地址。然后,通过运行以上代码,会创建一个代理服务器,监听本地主机的3000端口。当收到请求时,代理服务器会将该请求转发到目标服务器,并将响应返回给客户端。
请注意,以上示例仅适用于使用HTTP协议的实时服务器。如果你的实时服务器使用WebSocket协议,你需要使用http-proxy
模块的WebSocket代理功能来进行转发。代码示例如下:
const http = require('http');
const httpProxy = require('http-proxy');
const WebSocket = require('ws');
// 目标服务器的地址
const targetServer = 'http://your-realtime-server.com';
// 创建代理服务器实例
const proxy = httpProxy.createProxyServer({
ws: true, // 启用WebSocket代理功能
target: targetServer,
});
// 创建HTTP服务器
const server = http.createServer((req, res) => {
// 转发请求到目标服务器
proxy.web(req, res);
});
// 创建WebSocket服务器
const wss = new WebSocket.Server({ server });
wss.on('connection', (ws) => {
// 转发WebSocket连接到目标服务器
proxy.ws(ws);
});
// 监听本地主机的端口
const port = 3000;
server.listen(port, () => {
console.log(`Proxy server is listening on port ${port}`);
});
以上代码示例中,在创建proxy
实例时,通过ws: true
选项启用了WebSocket代理功能。然后,通过proxy.ws(ws)
方法将WebSocket连接转发到目标服务器。