Closed ericjing83 closed 2 months ago
TLS 用 AddrsTLS 再试试, 如果还跑不起来, 请把你的代码整理下markdown或者直接上传压缩包给我一份直接能跑起来的我试试:
engine := nbhttp.NewEngine(nbhttp.Config{
Network: "tcp",
AddrsTLS: []string{*addr},
TLSConfig: tlsConfig,
MaxLoad: 1000000,
ReleaseWebsocketPayload: true,
Handler: mux,
MessageHandlerPoolSize: 10000,
IOMod: nbhttp.IOModNonBlocking,
// websocket 单帧最大载荷
MaxWebsocketFramePayloadSize: 1024 * 16, //this is a recommend value from chrome
})
大佬,我用重试了下,现在可以了。双向TLS握手也可以通过。我增加了自定义origin check的逻辑。 非常感谢指点。我贡献下测试代码和测试用的证书,在附件里。 temp.zip
好的, 感谢反馈, 欢迎使用!
我不是很确定,这样替换成了iris之后,在建立连接的时候,TLS握手是不是还会用大佬编写的异步TLS的算法?我希望用nbio自己的异步的TLS算法来处理握手。如果iris和这个问题冲突了,那我还是切换回mux。
我不是很确定,这样替换成了iris之后,在建立连接的时候,TLS握手是不是还会用大佬编写的异步TLS的算法?我希望用nbio自己的异步的TLS算法来处理握手。如果iris和这个问题冲突了,那我还是切换回mux。
iris以及其他基于标准库的框架主要是用于路由功能, 路由本身与下面传输层使用什么进行数据传输的耦合不大, 除非特殊需要和一些nbio异步无法直接兼容的功能, 其他基本没影响.
顺便问下,我上面的代码,如果按照这个链接:https://github.com/lesismal/nbio/issues/275,仅仅把mux的代码替换为iris框架,真正处理websocket收发消息还是基于nbio,这样,在建立连接的时候,性能会提升吗?
建立连接不会有性能提升, nbio的websocket功能有点复杂, ws建立连接和握手可能比其他框架略慢, 但这块性能差别不大除非极端性能要求否则基本可以忽略. 如果不是海量连接, nbio poller数据收发的性能也不如标准库方案, 优势主要是海量连接的内存gc和稳定性
大佬您好, 我在测试nbio的Tls websocket server和gorilla client的连接,测了好几次,都出现了EOF的错误.服务器端和客户端都在同一台物理机上。我仅仅开启了常规的单向TLS握手(仅仅客户端会验证服务器端的真假) 奇怪的是,当我使用一模一样的证书,在同一台物理服务器上,让gorilla client(完全一模一样的代码)连接gorilla fasthttp的websocket server(同样开启TLS),连接就会成功(而且我开启了双向TLS握手)。我确定所有的服务器和客户端证书和key都没问题。(证书没有啥特别的,就是测试用的RSA的证书) 想让您帮忙看看EOF错误的原因。 以下是nbio TLS服务端的代码: