0
我有一個Tornado服務器,它偵聽地址/端口和套接字。我粗略地創建像這樣(剝離下來,重重地)服務器:確定請求是否通過套接字或URL與Tornado進行通訊
from tornado import httpserver
from tornado.netutil import bind_unix_socket
server = httpserver.HTTPserver(
request_callback=some_callback,
io_loop=some_loop,
)
unix_socket = bind_unix_socket("mysock.sock")
server.add_socket(unix_socket)
server.listen(address="some_host", port=1234)
我希望能夠區分在通過套接字接收到一個請求,即是這樣的:
curl -XGET --unix-socket mysock.sock http:/ping
由於反對:
curl http://some_address:1234/ping
我看着接收到一個請求時龍捲風使用HTTPServerRequest,但我不知道最好的辦法是告訴兩者之間的區別是什麼。我可以看看remote_ip
以查看它是否來自本地主機,但我不認爲這是理想的。
看起來'remote_ip'將'0.0.0.0'對於Unix套接字按照'tornado.httpserver.py'在來源(https://github.com/tornadoweb/tornado/blob/81ee310adcd905fbdf7c98d9fb6ef0c5a46026c2/tornado/httpserver.py#L203)。另外,我相信'request.context'中的'address_family'將會是'AF_UNIX'。 – thomascirca