2012-12-05 3 views
0

어떻게 예를 들어 파이썬 라이브러리를 사용하여 연결된 모든 클라이언트/자원 한 XMPP 메시지를 보낼 수 있습니다 :연결된 모든 클라이언트에 XMPP 메시지를 보내기/자원

xmpppy, jabber.py, jabberbot을. 다른 모든 명령 줄 솔루션도 좋습니다.

지금까지 단 하나의 클라이언트에만 에코 또는 단일 메시지를 보낼 수있었습니다.

목적은 그룹화되지 않은 연결된 모든 자원/클라이언트에게 메시지를 보내는 것입니다. 이것은 명령에 의해 트리거 될 수 있지만 '실제로'필요하지는 않습니다.

감사합니다.

+0

연결된 모든 클라이언트에게 전송 하시겠습니까, 아니면 특정 클라이언트의 모든 세션 (동일한 기본 JID를 공유하는 모든 클라이언트)으로 보내시겠습니까? – Robin

+0

모든 현재 고객에게 메시지를 보내고 싶습니다. 연결된 모든 클라이언트가 나타납니다. – user1818994

답변

0

특정 파이썬 예제를 제공 할 수는 없지만 논리가 어떻게 작동하는지 설명합니다.

맨손으로 메시지를 보내면 서버 소프트웨어 나 구성에 따라 경로가 달라집니다. 일부 서버는 "가장 사용 가능한 리소스"로 메시지를 보내고 일부 서버는이를 모든 리소스로 보냅니다. 예 : Google 토크는이를 모든 리소스에 보냅니다.

서버 소프트웨어를 제어하고 베어드 된 Jid에 연결된 모든 리소스로 메시지를 라우팅 할 수있는 경우 가장 쉬운 방법입니다.

코드가 모든 서버에서 작동해야하는 경우 연락처의 사용 가능한 모든 리소스를 수집해야합니다. 여러분은 그것들을 존재감있게 얻습니다. 대부분의 도서관은 이것을위한 콜백을 가지고 있습니다. 그런 다음 메시지를 전체 JID (자원 포함)에 루프로 보낼 수 있습니다.

0

나는 모든 연결된 리소스에 대해 동일한 우선 순위를 설정하면 작동하지만 실제로 시도하지 않았다고 생각합니다.

그러나 ejabberd에는이 작업을 수행하는 Mssage Carbon이라는 모듈이 있습니다.이 기능 또는 속성은 "route.all-resource"라는 이름으로 불에 있습니다.

힌트 : Message carbons를 사용하는 경우 XMPP 클라이언트 라이브러리가 MessageBox를 작동하도록 설정해야합니다.

관련 문제