这就是最简单的代码了,可以随便 send, sock:send("hello"),即使没有 send,只要 sock:connect,通过 wireshark 都会发现建立了两个连接
我服务端的测试代码是 bio 的 java,会发现一次 lua 请求,serverSocket.accept 会被调用两次
我猜想应该是跟我某种配置有关系,不至于是 bug, 我一开始是在 windows 7 上测试发现的问题,但换到 centos 7 上一样的问题,分别测试过 openresty 1.11.2.2 和 1.7.2.1 都一样的问题
纠正:示例中的 sock.close() 应该是 sock:close(),手误
On Tuesday, August 22, 2017 at 6:44:54 PM UTC+8, tokers wrote:
能提供一个完整的复现案例吗?你给的代码里连 sock:send 都没使用~
On Tuesday, August 22, 2017 at 6:34:23 PM UTC+8,
xfwang...@gmail.com wrote:
Hello
今天测试 ngx.socket.tcp 发现最简单的代码一次 send, 实际服务端收竟然到两次一模一样请求,通过 wireshark 拦截分析,确实两次请求,而且是建立了两个完全不一样的连接,配置都是最简单的,找了半天都并没有发现有什么奇怪的配置。
local sock = ngx.socket.tcp()
local host = "127.0.0.1"
local port = 80
local ok, err = sock:connect(host, port)
if not ok then
ngx.say("connect ERR ", err)
return
end
ngx.say("connect OK")
sock.close()
然后,测试 https://github.com/openresty/lua-resty-mysql 发现一样的问题,会重复插入数据。
不知哪里有问题?
谢谢