2016-08-04 35 views
2

서버에서 클라이언트로 푸시 받기를 시도하고 있습니다. 다음과 같이 내 테스트 클라이언트를 사용하여 :Flask-SocketIO에서 Test Client로 알림을 푸시하는 방법은 무엇입니까?

클라이언트 :

socket_client = socketio.test_client(app) 
@socketio.on('hit_client') 
def recieve_message(json_data): 
    print("Server has called!") 

서버 :

socketio.emit('hit_client', 'Hi Client!') 

서버가 밀고 hit_client 채널을 호출하지만 해고하지 않을해야합니다. 그러나 socket_client.get_received()에는 방출 된 데이터가 있습니다. 나는 WebSockets의 전체적인 포인트가 양방향 통신 (pushing function triggers)이라고 생각했다.

이것은 매우 간단한 설정이며 작동하지 않는 것 같습니다 ... 어떤 도움도 극명하게 평가 될 것입니다. 나는 몇 시간 동안 내 머리를 꽝 닫았습니다.

답변

1

테스트 클라이언트가 Socket.IO 클라이언트가 아닙니다. Socket.IO 서버의 단위 테스트를 작성하는 것을 돕는 것이 유일한 목적입니다. 이것은 HTTP 경로에 대한 Flask의 테스트 클라이언트와 개념이 비슷합니다. 단위 테스트에서 사용하는 것이 타당합니다.

서버가 클라이언트에게 뭔가를 내 보내면 테스트 클라이언트는이를 저장하고 get_received 호출을 통해 테스트 코드에서 액세스 가능하게 만듭니다. 그것은 의도 된 목적이 아니기 때문에 어떤 사건도 발생시키지 않을 것입니다.

파이썬에서 Socket.IO 클라이언트를 구현하려는 경우 패키지는 https://pypi.python.org/pypi/socketIO-client입니다. 이 패키지를 사용하면 Socket.IO 서버에 연결하고 이벤트를 보내고받을 수있는 Python 스크립트를 작성할 수 있습니다.

+1

감사합니다. Miguel. 네가 대답했다고 정말 고마워! – echo