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