많은 클라이언트에게 메시지를 보내야하는 응용 프로그램이 있습니다. 클라이언트는 사용자의 컴퓨터에있는 응용 프로그램이며 이러한 응용 프로그램은 때때로 한 번에 여러 날씩 실행됩니다. 서버에 새로운 명령어가 있거나 그렇지 않습니다. 때로는 1 시간, 때로는 하루에 두 가지 새로운 지침 사이에 10 분이있는 경우도 있습니다. 메시지는 고정 된 길이입니다.소켓을 사용하여 클라이언트에게 정기 메시지를 보내는 가장 좋은 방법
이것을 구현하는 가장 좋은 방법은 무엇입니까? 클라이언트가 매 10 초마다 서버를 폴링해야합니까? 새 클라이언트가 연결할 때마다 서버에 새 스레드를 만들어야하며 새 명령이 생길 때까지 연결을 유지 한 다음 클라이언트에 보내 클라이언트가 새 연결을 만들도록해야합니까?
아니면 메시지를 클라이언트에 전달해야합니까? 어떻게하는지 생각하고 있었고, 이것으로 생각해 냈습니다 : 서버와 클라이언트 모두로서 서버 서버. 클라이언트가 핸드 셰이크하면 서버에 주소를 제공합니다. 그런 다음 서버는 클라이언트 (및 다른 클라이언트가 분명히 연결할 수있게하는 서버) 역할을 시작하고 클라이언트와의 연결을 유지합니다. 클라이언트는 서버처럼 행동하고 메시지를 기다립니다.
마지막 하나는 다소 복잡해 보입니다. 이 작업을 수행하는 가장 좋은 방법은 무엇입니까? 서버에서 새 메시지 ("지침")는 서버에 "있는"후 최소 15 초 후에 클라이언트에 도착해야합니다.
서버 응용 프로그램은 Windows에서 실행됩니다. 고객의 나는 잘 모르겠지만 멀티 플랫폼이라고 가정합시다. 서버 및 클라이언트 응용 프로그램은 모두 Python으로 작성됩니다.
감사합니다.
아마도 xmpp 프로토콜로 아이디어를 얻을 수 있습니까? (http://en.wikipedia.org/wiki/XMPP) – thebjorn
@thebjorn XMPP는 내가하고있는 일에 약간 과잉이라고 여겨진다. 그러나 나는 인터넷을 통해 의사 소통을하기 위해 그것을 과거에 사용 해왔다. – Taoelism