문제

Wamp.ws 사양을 사용하여 웹 사이트에서 공개/개인 사용자 채팅방을 설계하고 있습니다.

내 연결된 모든 사용자의 목록을 유지하려고 할 때 내 문제가 발생합니다. 내가 할 수있는 일 :

  1. 모든 사용자는 "/contacts/connections"주제를 구독합니다.
  2. 사용자가 연결하면 "user_id"인수와 함께 "hello"메시지를 게시하여 다른 사용자에게 연결되어 있다고 말합니다.

-> 그러나 사용자를 어떻게 신뢰할 수 있습니까? 모든 사용자는 임의의 "user_id"인수와 함께 "hello"메시지를 보낼 수 있습니다.

나에게 서버는 메시지를 방송하기 전에 약간의 수표를 수행해야합니다. 그러나 WAMP.JS 사양에 따른 것입니까? 게시 된 메시지는 항상 서버로 방송된다는 것을 읽었습니다.

또 다른 솔루션은 RPC 호출을 사용하여 사용자를 연결하는 것입니다. 실제로, 나는 사용자를 인증하기 위해 그렇게했습니다. 그러나 서버가 이벤트를 그 자체로 "/contacts/connections"에 대한 이벤트를 방송 할 수 있습니까? (RPC 호출 후, "게시"메시지 이후가 아니라) 나는이 이벤트가 클라이언트의 "게시"의 직접적인 결과 일뿐입니다. 또한 이렇게하면 일반 사용자가 서버에서 방송되는 이벤트 "/Contacts/Connections"주제를 보내지 않아도됩니다.

두 가지 솔루션 (방송 전에 게시 된 메시지를 확인하거나 RPC 호출 후 서버 별 이벤트 방송)은 모두 WAMP.JS 사양을 break한다고 생각합니다. 내가 잘못 ?

고맙습니다

도움이 되었습니까?

해결책

WAMP는 차별화됩니다

  1. 입증
  2. 권한 부여
  3. 확인

입증 WAMP 라우터에서 WAMP 클라이언트의 신원을 설정합니다.

사용할 때 아우토반 | 파이썬 자신의 wamp 라우터를 굴리기 위해 여기 다른 인증 메커니즘을 구현하는 방법을 보여주는 여러 예입니다.

사용할 때 crossbar.io (통합, 생산 준비 완비 라우터), 인증 메커니즘은 내장되어 있습니다 (여기).


권한 부여 주어진 WAMP 클라이언트가 주어진 URI에서 WAMP 조치 (게시 또는 전화와 같은)를 수행 할 수 있는지 결정합니다.

사용할 때 아우토반 | 파이썬 자신의 wamp 라우터를 굴리기 위해 여기 사용자 정의 인증을 구현하는 방법을 보여주는 예입니다.

Crossbar.io는 내장 된 정적 인증 체계가 있으며 승인을위한 사용자 정의 WAMP 절차를 등록 할 수 있습니다.여기).


마지막으로, 거기에 있습니다 확인, 이벤트 또는 통화의 응용 프로그램 수준 페이로드를 확인합니다.

여기 Autobahn | Python의 예입니다. Crossbar.io는 곧 유효성 검사를 위해 사용자 정의 WAMP 절차를 등록 할 수 있습니다.


라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top