多个 Listener

关键字: 多个端口, 多个监听, Listener, 多个Listener

单个 listener

在下面的配置中,你可以配置服务器监听 IP 和端口:

  1. {
  2. "serverOptions": {
  3. "name": "EchoServer",
  4. "listeners": [
  5. {
  6. "ip": "Any",
  7. "port": "2020"
  8. }
  9. ]
  10. }
  11. }

多个 listeners

你也可以在配置节点 “listeners” 下添加多个元素:

  1. {
  2. "serverOptions": {
  3. "name": "EchoServer",
  4. "listeners": [
  5. {
  6. "ip": "Any",
  7. "port": "2020"
  8. },
  9. {
  10. "ip": "192.168.3.1",
  11. "port": "2020"
  12. }
  13. ]
  14. }
  15. }

在此例中,服务器实例 “EchoServer” 将会侦听两个本地端口。这个类似于在 IIS 中的网站可以有多个绑定。

你也可以给不同的 listener 配置不同的属性:

  1. {
  2. "serverOptions": {
  3. "name": "EchoServer",
  4. "listeners": [
  5. {
  6. "ip": "Any",
  7. "port": 80
  8. },
  9. {
  10. "ip": "Any",
  11. "port": 443,
  12. "security": "Tls12",
  13. "certificateOptions": {
  14. "filePath": "supersocket.pfx",
  15. "password": "supersocket"
  16. }
  17. }
  18. ]
  19. }
  20. }

除了在配置中定义 listener, SuperSocket 2.0 还允许你通过代码的方式添加 listener:

  1. var host = SuperSocketHostBuilder.Create<TextPackageInfo, LinePipelineFilter>(args)
  2. .ConfigureSuperSocket(options =>
  3. {
  4. options.AddListener(new ListenOptions
  5. {
  6. Ip = "Any",
  7. Port = 4040
  8. }
  9. );
  10. }).Build();
  11. await host.RunAsync();