我正在使用WAMP.ws规范在我的网站上设计公共/私人用户聊天室。
当我尝试保留所有连接用户的列表时,我的问题出现了。 我能做什么:
- >但我怎么能信任用户呢?任何用户都可以发送带有随机“user_id”参数的“Hello”消息。
对我来说,服务器必须在广播消息之前进行一些检查。但它是否符合WAMP.js规范?我已经读过,发布的消息总是由服务器广播。
另一种解决方案可能是使用RPC调用来连接用户。实际上,我这样做是为了验证用户身份。但是服务器可以自己向主题“/ contacts / connections”广播一个事件吗? (在RPC调用之后,不是在“发布”消息之后) 我读过,事件只是客户“发布”的直接结果。 此外,这不会阻止普通用户发送事件“/ contacts / connections”主题,这将由服务器广播。
我觉得我的两个解决方案(在广播之前检查已发布的消息,或者在RPC调用之后由服务器广播事件)都会破坏WAMP.js规范。 我错了吗?
谢谢
答案 0 :(得分:6)
WAMP区分
身份验证在WAMP路由器上建立WAMP客户端的身份。
使用Autobahn|Python滚动自己的WAMP路由器时,here是显示如何实现不同身份验证机制的多个示例。
使用Crossbar.io(集成的生产就绪WAMP路由器)时,内置了身份验证机制(here)。
授权确定是否允许给定的WAMP客户端对给定的URI执行WAMP操作(如发布或调用)。
使用Autobahn|Python推送自己的WAMP路由器时,here是一个展示如何实施自定义授权的示例。
Crossbar.io具有内置静态授权方案,并允许注册自定义WAMP程序以进行授权(here)。
最后,还有验证,它会检查事件或调用的应用程序级有效负载。
Here是Autobahn | Python的一个例子。 Crossbar.io将很快允许注册自定义WAMP程序进行验证。