나는 방화벽 뒤에있는 서버와 공개적으로 사용 가능한 웹 서버가 서버로부터 정보를 요청하고있다. 나는 pyzmq를 사용하여 백엔드와 웹 프론트 엔드 간의 통신을 관리하고 있습니다. 프록시가 없어도 로컬로 통신 할 때 작동합니다. 그것은 프록시를 사용할 때 작동합니다. ThreadProxy를 시작할 수는 있지만 어떻게 멈출 수 있습니까?pyzmq에서 어떻게 프록시를 중지합니까?
import zmq
from zmq.devices import ThreadProxy
class MyProxy:
def __init__(self)
p = ThreadProxy(zmq.ROUTER, zmq.DEALER) # Not using mon
p.setsockopt_in(zmq.IDENTITY, b'ROUTER')
p.setsockopt_out(zmq.IDENTITY, b'DEALER')
p.bind_in('tcp://*:5550')
p.connect_out('tcp://localhost:5550')
self._proxy = p
def start(self)
self._proxy.start()
def stop(self)
???
실제로 프록시를 중지하도록 요청하려면 어떻게해야합니까? .join은 프록시가 차단되었거나 중지 할 이유가 없기 때문에 대기합니다. .term()에 대한 컨텍스트가 없습니다.
"kill"은 가장 우아한 해결책이 아니며 내가 찾고있는 프록시에 대한 제어권을 제공하지도 않습니다.
는 컨텍스트가 닫힐 때 그것이 다이 일반 장치와 동일한 동작. 'myProxy.context_factory(). term()'과 같은 일을하면 수동으로 프록시가 멈추지 만 가베지 콜렉션을 사용하면 잘 작동한다. – FirefoxMetzger