我正在使用WAMP.WS规格在我的网站上设计公共/私人用户聊天室。

当我尝试保留所有连接用户的列表时,我的问题就到了。我能做什么:

  1. 所有用户都订阅“/联系人/连接”主题。
  2. 当用户连接时,他将使用“ user_id”参数发布“ Hello”消息,并告诉其他用户他已连接。

- >但是我如何信任用户?任何用户都可以发送带有随机“ user_id”参数的“ Hello”消息。

对我来说,服务器必须在广播消息之前进行一些检查。但是是否符合wamp.js规格?我已经读到,已发布的消息总是由服务器播放。

另一个解决方案可以使用RPC调用来连接用户。实际上,我这样做是为了认证用户。但是,服务器可以单独广播事件以“/联系人/连接”为主题吗? (在RPC呼叫之后,不是在“发布”消息之后)我读到的事件只是客户端“发布”的直接结果。此外,这不会阻止普通用户发送事件“/联系人/连接”主题,该主题将由服务器广播。

我觉得我的两个解决方案(在广播之前检查已发布的消息,或者在RPC调用后通过服务器广播)都会违反WAMP.JS规格。我错了吗 ?

谢谢

有帮助吗?

解决方案

WAMP区分

  1. 验证
  2. 授权
  3. 验证

验证 在Wamp路由器上建立Wamp客户端的身份。

使用时 Autobahn | Python 为了滚动自己的Wamp路由器, 这里 是多个示例,显示了如何实施不同的身份验证机制。

使用时 Crossbar.io (一种集成生产的现成的WAMP路由器),身份验证机制是内置的(这里).


授权 确定是否允许给定的WAMP客户端在给定的URI上执行WAMP操作(例如发布或呼叫)。

使用时 Autobahn | Python 为了滚动自己的Wamp路由器, 这里 是显示如何实现自定义授权的示例。

Crossbar.io具有内置的静态授权计划,并允许注册自定义WAMP程序以进行授权(这里).


最后,有 验证, ,检查事件或呼叫的申请级有效载荷。

这里 是Autobahn | Python的一个例子。 CrossBar.io很快将允许注册自定义WAMP程序进行验证。


许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top