hello, 各位好:
最近在尝试做下rtsp流的代理,查看了,可以用tcp的方式来做转发。
本意是想这样rtsp://192.168.1.1:554/realrtsp1
stream {
upstream rtsp1 {
hash $remote_addr consistent;
server 192.168.11.110:554 weight=5 max_fails=3 fail_timeout=30s;
}
upstream rtsp2 {
hash $remote_addr consistent;
server 192.168.11.111:554 weight=5 max_fails=3 fail_timeout=30s;
}
server {
listen 2014;
proxy_connect_timeout 1s;
proxy_timeout 3s;
#
content_by_lua_file test_rtsp.lua;
}
}
test_rstp.lua本意是想接收到的rtsp地址按需进行转发,初步设想的地址格式是rtsp://192.168.1.1:554/realrtsp_str,服务收到后,根据realrtsp_str的值进行判断转发。
做了如下尝试
local sock, err_socket = ngx.req.socket()
local line, err, partial = sock:receive()
ngx.log(ngx.ERR,line)
ngx.log(ngx.ERR,err)
ngx.log(ngx.ERR,partial)
但是发现通过访问rtsp地址的时候,没法获取到后面的realrtsp_str这个值
line的值如下
OPTIONS rtsp://127.0.0.1:2014 RTSP/1.0, client: 127.0.0.1, server: 0.0.0.0:2014
err和partial的值都是nil
像这种协议的如果做到这种按需转发并接收到对应的内容呢? openresty的这种tcp级别的代理能否满足这种用途呢?
感谢~