Groups
Sign in
Groups
openresty
Conversations
Labels
About
Send feedback
Help
stream 模块自定义协议的长链接
52 views
Skip to first unread message
Xudong Wang
unread,
Sep 22, 2021, 4:36:24 AM
9/22/21
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Sign in to report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to openresty
server 端配置:
stream {
server {
listen 8000;
lua_socket_keepalive_timeout 60s;
content_by_lua_block {
local sock = assert(ngx.req.socket(true))
local data = sock:receive(360)
ngx.print("\x01\x01\x00\x00\x00\x3f\x02\x01\x00\x00\x00\x3f")
sock:settimeout(2 * 1000)
}
}
}
客户端也是 openresty,在 do_access 阶段发送 360 字节数据,之后调用 setkeepalive 也无报错。
抓包看到每次 server print 后主动发送 FIN 断开链接(8000 -> 4xxxx 端口的 FIN ACK),如何在使用 stream 时保持 1 分钟长链接呢?
kurapi...@gmail.com
unread,
Sep 25, 2021, 2:44:11 AM
9/25/21
Reply to author
Sign in to reply to author
Forward
Sign in to forward
Delete
You do not have permission to delete messages in this group
Copy link
Report message
Sign in to report message
Show original message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to openresty
setkeepalive 用于将socket对象放回连接池,等待复用,需要保持连接用 tcpsock:settimeouts(connect_timeout, send_timeout, read_timeout) 调整timeout时间好些
Reply all
Reply to author
Forward
Message has been deleted
0 new messages