0
我正在运行一个节点应用程序,该节点应用程序有条件地基于HTTP请求的子域来应用其他应用程序.use
。造成这种情况的代码如下:我怎样才能让socket.io使用子域名?
var server = http.createServer(app);
...
global.socket = io.listen(server);
...
subdomains.forEach(function (subdomain) {
var vhost = (subdomain == '_' ? '' : subdomain + '.') + domain;
app.use(express.vhost(vhost, require('./' + subdomain)));
});
现在假设我想在两个不同的子域使用socket.io。它们都可以访问相同的套接字,因为它在同一个端口上运行。但是,如果我尝试连接到http://sub1.domain.tld/
,则任何广播也会发送到http://sub2.domain.tld/
。
有什么办法可以限制广播,发射,& c。基于连接的子域名?
不,如果您的进程正在侦听该端口,数据将被您的进程接收。您可以忽略基于查询的url进入连接的数据,或者更好的是,在您的主端口上设置代理服务,并在不同端口上为您各自的服务器设置两种不同的服务。然后基于哪个子域被ping通来代理请求。 – ChrisCM