, 나는 추세에 주목하고 있습니다 :트위스트 및 WebSocket을 : WebSocket을에 대한 내 지속적인 호기심을 넘어 에코
이웹 소켓 우주의 "안녕하세요 세계는"적어도 순간, 것 같다 "를 에코 '기능 . 즉, 시연 된 응용 프로그램은 일반적으로 "나는 무언가를 보냅니다, 나는 무언가를받습니다."
프로토콜이 기능적임을 적절히 입증하는 동안이 예제는 전통적인 요청/응답주기에서 사용할 수있는 것과 동일한 유형의 통신을 실제로 보여줍니다.
import sys
from twisted.python import log
from twisted.internet import reactor
from twisted.web.static import File
from twisted.web.websocket import WebSocketHandler, WebSocketSite
class Echohandler(WebSocketHandler):
def frameReceived(self, frame):
log.msg("Received frame '%s'" % frame)
self.transport.write(frame + "\n")
def main():
log.startLogging(sys.stdout)
root = File(".")
site = WebSocketSite(root)
site.addHandler("/ws/echo", Echohandler)
reactor.listenTCP(8080, site)
reactor.run()
if __name__ == "__main__":
main()
어떻게 대신 여기에 "푸시"기능을 검사 할 수 있습니다 : 예를 들어
, 나는 twisted.web.websockets의 찾을 수 있습니다 (서버 측)의 유일한 데모는 다음과 같습니다? 즉, 웹 소켓을 열어 둘 수있는 방법, 그리고 나중에 어떤 이벤트가 발생했을 때 결정된 시간에이 이벤트의 영향을받는 내용 인 websocket을 통해 메시지를 보냅니 까?
(이 질문으로 관심이있는 사람들도 내가 몇 일 전에 요청으로 경쟁력이 질문 간주 될 수 있습니다 Making moves w/ websockets and python/django (/ twisted?)를)
Firefox 4에서 웹 소켓을 사용할 수 없다는 것을 감안할 때 http://hacks.mozilla.org/2010/12/websockets-disabled-in-firefox-4/, 그리고 완료 되더라도 그들은 작동하지 않을 수도 있습니다. 모든 브라우저에서 양방향 브라우저 통신에 대한 더 높은 수준의 추상화를 조사하고 싶을 것입니다. 웹 소켓은 Athena http://divmod.org/trac/wiki/DivmodNevow/Athena와 Orbited http://orbited.org/와 같은 것들을 최적화하는 방법 일뿐입니다. – Glyph
현재 사양 (및 지원)과 같은 뻔뻔 스럽지만 실제로는 Comet (Athena, Orbited 등)의 완전한 리메이크가 아닌 Web 소켓입니다. 지금은 모든 브라우저에서 작동 할 솔루션에 관심이 없습니다. 나는 단지 나 자신과 다른 집단 구성원들 사이에서 일할 무언가를 만들고 싶다. 우리는 브라우저와 방화벽 조건을 완전히 통제 할 것이다. – jMyles
아니요, 꼭 그런 것은 아닙니다. Athena는 완벽한 고급 메시징 시스템으로 바이트 만 전송하는 것이 아닙니다. 그리고 Orbited는 여러 전송을 사용할 수 있으며 더 나은 원시 기술을 사용할 수 없다고 판단 할 때보다 원시/덜 효율적인 기술로 떨어집니다. 웹 소켓보다 * 좋은 * 것이 있으면 코드 전체를 다시 작성하지 않고도이 기능을 활용하기를 원할 것입니다. – Glyph