twisted.web.client.Agent에서 기본 소켓에 어떻게 액세스 할 수 있습니까? 이 소켓에서 TCP_NODELAY를 활성화해야합니다.twisted.web.client.Agent에 대한 액세스 소켓 옵션
1
A
답변
4
유감스럽게도 Agent는 프로토콜 인스턴스로 직접 작업하는 경우처럼 쉽게 만들지 않지만 불가능하지는 않습니다.
의 핵심은 에이전트의 클래스 정의에서, 여기있다 : 위해
_protocol = HTTP11ClientProtocol
당신이 HTTP11ClientProtocol에 connectionMade를 오버라이드 (override) 할 수있는 전송뿐만 아니라 에이전트에 접근 할 수 있습니다.
from twisted.web import client
class MyHTTPClient(client.HTTP11ClientProtocol):
def connectionMade(self):
self.transport.setTcpNoDelay(True)
client.HTTP11ClientProtocol.connectionMade(self) # call the super-class's connectionMade
class MyAgent(client.Agent):
_protocol = MyHTTPClient
지금 에이전트 대신에 MyAgent을 사용하고 클라이언트에서 TCP의 nodelay를 얻을 수 있습니다 :
그래서 당신은 같은 것을 끝낼 것입니다.
** ** ** 이렇게하는 유일한 방법은 아니지만 그렇게 할 수있는 방법 중 하나는 Agent.request를 계속 사용하는 것입니다. 또는 요청을 작성하고 클라이언트에 연결하고 TCP nodelay와 함께 요청을 지연 체인에 연결하는 자체 에이전트를 작성하십시오.
** 참고 2 **이 경우에는 '전송'에 setTcpNoDelay() 방법이 있다고 가정하는 것이 좋습니다. 이는 TCP를 HTTP 요청 전송 용으로 사용하는 것이 합리적이라고 가정하기 때문입니다. 그러나 이것은 완전히 뒤틀린 현명한 생각이 아닐 수도 있습니다.
관련 문제
- 1. 소켓 옵션
- 2. 디스플레이 소켓 옵션
- 3. Android 앱 : 프로그램에 대한 소켓 액세스 허용
- 4. sendng을위한 udp 소켓 옵션 RTP
- 5. 액세스 옵션 ms 액세스 2007
- 6. HTMLUNIT에서 소켓 데이터에 액세스
- 7. 소켓 타임 아웃 및 O_NONBLOCK 옵션 제거
- 8. 인디 10 및 소켓 옵션 설정
- 9. Java 소켓 서버에 대한 Python 소켓 클라이언트
- 10. Codeplex SVN 액세스 오류 옵션
- 11. 전자 메일에 대한 옵션 표시
- 12. Weblogic의 공용 서비스에 대한 옵션
- 13. draggable에 대한 포함 옵션
- 14. Excel의 피벗 테이블에 대한 옵션
- 15. Java 동시성, 부모 스레드의 액세스 소켓
- 16. 액세스 전송에 대한 액세스
- 17. 소켓 정보 저장 랜덤 액세스 속도
- 18. 다중 및 동시 클라이언트를위한 Python UDP 소켓 옵션
- 19. 종속성에 대한 Xcode 구성 옵션
- 20. error_messages_for에 대한 기본 옵션 제공
- 21. 에뮬레이터에 대한 GUI 옵션 C++
- 22. PHP에 대한 검색 옵션 탐색
- 23. 액세스 파일에 대한 suggession이 필요합니다.
- 24. Windows 소켓 소켓 성능
- 25. OpenAM svn 서버에 대한 액세스
- 26. 다수의 행에 대한 테이블 디자인 옵션?
- 27. 자바 : 소켓 대 소켓
- 28. 클라이언트 (소켓)의 소켓 수신자
- 29. 비 소켓 소켓 작업
'_'은 "개인"을 의미한다는 것을 잊지 마십시오. –
@JP : 실용 주의자는 API 협약에 위배되지 않는 도서관 관리자와 전쟁 중입니다. 불행하게도 실용 주의자는 종종 승리합니다. Twisted에 대한 개인적 지식이 더 많으므로 클라이언트의 경우 "프로토콜"속성이 개인으로 표시된 이유를 알 수 있습니까? 이것은 다른 많은 공장 유형 객체와 다소 부합됩니다. – Crast