beetlex-io / FastHttpApi

a lightweight and high-performance http/websocket service component in the dotnet core platform that supports TLS.
Apache License 2.0
650 stars 175 forks source link

请问支持UnixSocket吗? #171

Closed senioi closed 2 years ago

senioi commented 2 years ago

感谢大佬一直更新这个库,请问是否有意支持UnixSocket? FastHttpApi作为本地内部后端服务, 如果支持UnixSocket的话就太好了.

beetlex-io commented 2 years ago

看了一下文档,如果.net core支持UnixSocket listen的情况问题不大

senioi commented 2 years ago

看了一下文档,如果.net core支持UnixSocket listen的情况问题不大

我尝试下载大佬的源码,然后貌似只要改动一个地方,把socket 改成unix即可,当然只是无脑改动,但是确实可用,希望大佬有空更新下

改动如下: ListenHandler.cs Socket = new Socket(IPEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp); 改成: var unixSocket = "/tmp/beetlex_io.sock"; if (System.IO.File.Exists(unixSocket)) System.IO.File.Delete(unixSocket); Socket = new Socket(AddressFamily.Unix, SocketType.Stream, ProtocolType.Unspecified); Socket.Bind(new UnixDomainSocketEndPoint(unixSocket)); Socket.Listen(5);

senioi commented 2 years ago

内部使用unixSocket,减少很多tcp开销,虽然只是个小改动,但是带来的效率增加很明显.

beetlex-io commented 2 years ago

升级到V2.2.0.180 host参数支持unixSocket文件传入,想同时监听tcp和unixsocket那host指定ip,HttpOptinos.SockFile指定unixsocket文件。

senioi commented 2 years ago

升级到V2.2.0.180 host参数支持unixSocket文件传入,想同时监听tcp和unixsocket那host指定ip,HttpOptinos.SockFile指定unixsocket文件。

感谢大佬抽空更新,请问如何关闭tcp,只开启unixsocket? 设置SockFile后,没设置tcp port,.然后默认开启9090端口了

beetlex-io commented 2 years ago

不设置SockFile,通过host设置就不会开启tcp