在同一端口上运行两个套接字服务器

阿曼·古普塔(Aman Gupta)|

我有三台服务器

  1. 主服务器-监听所有HTTP请求
  2. 套接字服务器1:侦听X类型的套接字请求
  3. 套接字服务器2:侦听Y类型的套接字请求

我想使用相同的IP:Port组合来运行所有三台服务器,并且所有三台服务器都具有不同的主机名。我已经更新了本地DNS ,例如/etc/hosts,将所有三个域名解析为相同的IP 127.0.0.1

VHost用来根据主机名解析请求并将请求定向到适当的服务器。这是该代码:

var express = require('express');
var vhost = require('vhost');
var app = express();
var https = require('https');


var mainServer =  <hostname1> ;
var socketServer1 = <hostname2> ;
var socketServer2 = <hostname3>;


var server = https.createServer(<options>, app);

server.listen(<somePort>,function(){
    console.log('VHost running');
});

var mainApp = require('./app.js');
var socketServerApp1 = require('./socketServer1');
var socketServerApp2 = require('./socketServer2');

app.use(vhost(mainServer, mainApp));
app.use(vhost(socketServer1, socketServerApp1(server)));
app.use(vhost(socketServer2, socketServerApp2(server)));

我在上面的代码中面临的问题是,如果我尝试同时运行两个套接字服务器,浏览器将抛出如下错误:

WebSocket connection to 'wss://socketServer1:8443/socket.io/?EIO=3&transport=websocket&sid=qlSXz3os5eDI8c_EAAAC' failed: Connection closed before receiving a handshake response

但是,如果一次只运行一个套接字服务器,那么对于该套接字服务器来说一切正常,即,如果我对ap​​p.use中的一个进行注释,例如:

app.use(vhost(mainServer, mainApp));
app.use(vhost(socketServer1, socketServerApp1(server)));
//  app.use(vhost(socketServer1, socketServerApp2(server)));

不能在同一IP:Port组合上运行两个套接字服务器吗?

阿曼·古普塔(Aman Gupta)|

问题是两个套接字服务器都具有单独的列表器,这导致了错误。将套接字列表器移动到vhost App可以解决此问题。以下是代码:

var express = require('express');
var vhost = require('vhost');
var app = express();
var https = require('https');
var socketio = require('socket.io');


var mainServer =  <hostname1> ;
var socketServer1 = <hostname2> ;
var socketServer2 = <hostname3>;


var server = https.createServer(<options>, app);
var io = socketio.listen(server);

server.listen(<somePort>,function(){
    console.log('VHost running');
});

var mainApp = require('./app.js');
var socketServerApp1 = require('./socketServer1');
var socketServerApp2 = require('./socketServer2');

app.use(vhost(mainServer, mainApp));
app.use(vhost(socketServer1, socketServerApp1(io)));
app.use(vhost(socketServer2, socketServerApp2(io)));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

转:同时在两个不同的端口上运行TCP服务器吗?

来自分类Dev

如何在同一端口上同时使用套接字发送和接收

来自分类Dev

用两个线程创建到同一端口的两个套接字连接是否合法

来自分类Dev

主机上的nc-> VM工作(端口9050),但是VM(用Python编写的运行服务器)从主机-> VM的同一端口上重置连接[TCP RST](9050)

来自分类Dev

在同一服务器和端口上运行EmberJS和Django

来自分类Dev

在同一端口上重新打开Tcp套接字

来自分类Dev

如何使两个不同的python脚本在同一端口上运行?

来自分类Dev

让两个或多个线程在同一端口上侦听的更好方法

来自分类Dev

在同一端口上运行两个套接字服务器

来自分类Dev

Kubernetes:在同一端口上运行的微服务?

来自分类Dev

从同一`main`运行两个warp服务器是否安全?

来自分类Dev

在同一网络中运行两个DHCP服务器

来自分类Dev

一台物理服务器上2个不同IP地址上同一端口上的2个服务

来自分类Dev

两台计算机,应用程序在同一端口上运行

来自分类Dev

是否可以在同一端口上运行两个不同的Gearman客户/工人?

来自分类Dev

如果两个设备的程序都在同一端口上侦听,则路由器如何决定将数据路由到哪个设备?

来自分类Dev

在同一端口上重新打开Tcp套接字

来自分类Dev

Web服务器如何处理同一端口上的多个连接

来自分类Dev

如何在同一端口上运行套接字和Websocket服务器?

来自分类Dev

是否可以将Apache配置为在同一端口上既是静态Web服务器又是负载均衡器?

来自分类Dev

如何使用bash创建套接字服务器并在同一端口中允许多个客户端?

来自分类Dev

两个线程可以同时与同一端口上的两个不同的套接字交互吗?

来自分类Dev

Windows Server 2012 IIS托管在同一端口上的应用程序无法从服务器本身访问

来自分类Dev

如何使用citrus在同一端口上运行具有不同URL的两个模拟Web服务?

来自分类Dev

同一端口上的无状态WCF服务侦听器

来自分类Dev

redis-server多次运行会在同一端口上绑定多个侦听套接字吗?

来自分类Dev

socket.io - 客户端通过同一服务器连接到两个套接字

来自分类Dev

在同一个端口上运行 3 个 Web 服务器

来自分类Dev

UDP 客户端/服务器程序,通过不同 IP 和端口上的 2 个套接字进行通信

Related 相关文章

  1. 1

    转:同时在两个不同的端口上运行TCP服务器吗?

  2. 2

    如何在同一端口上同时使用套接字发送和接收

  3. 3

    用两个线程创建到同一端口的两个套接字连接是否合法

  4. 4

    主机上的nc-> VM工作(端口9050),但是VM(用Python编写的运行服务器)从主机-> VM的同一端口上重置连接[TCP RST](9050)

  5. 5

    在同一服务器和端口上运行EmberJS和Django

  6. 6

    在同一端口上重新打开Tcp套接字

  7. 7

    如何使两个不同的python脚本在同一端口上运行?

  8. 8

    让两个或多个线程在同一端口上侦听的更好方法

  9. 9

    在同一端口上运行两个套接字服务器

  10. 10

    Kubernetes:在同一端口上运行的微服务?

  11. 11

    从同一`main`运行两个warp服务器是否安全?

  12. 12

    在同一网络中运行两个DHCP服务器

  13. 13

    一台物理服务器上2个不同IP地址上同一端口上的2个服务

  14. 14

    两台计算机,应用程序在同一端口上运行

  15. 15

    是否可以在同一端口上运行两个不同的Gearman客户/工人?

  16. 16

    如果两个设备的程序都在同一端口上侦听,则路由器如何决定将数据路由到哪个设备?

  17. 17

    在同一端口上重新打开Tcp套接字

  18. 18

    Web服务器如何处理同一端口上的多个连接

  19. 19

    如何在同一端口上运行套接字和Websocket服务器?

  20. 20

    是否可以将Apache配置为在同一端口上既是静态Web服务器又是负载均衡器?

  21. 21

    如何使用bash创建套接字服务器并在同一端口中允许多个客户端?

  22. 22

    两个线程可以同时与同一端口上的两个不同的套接字交互吗?

  23. 23

    Windows Server 2012 IIS托管在同一端口上的应用程序无法从服务器本身访问

  24. 24

    如何使用citrus在同一端口上运行具有不同URL的两个模拟Web服务?

  25. 25

    同一端口上的无状态WCF服务侦听器

  26. 26

    redis-server多次运行会在同一端口上绑定多个侦听套接字吗?

  27. 27

    socket.io - 客户端通过同一服务器连接到两个套接字

  28. 28

    在同一个端口上运行 3 个 Web 服务器

  29. 29

    UDP 客户端/服务器程序,通过不同 IP 和端口上的 2 个套接字进行通信

热门标签

归档