我一直在研究使用ZODB作为多人视频游戏的持久层。我非常喜欢它与任意面向对象数据结构的无缝集成。然而,我在一个问题上跌跌撞撞,我不知道ZODB能否为我解决这个问题。你知道吗
显然,可以使用ZEO的ClientStorage
访问用于持久化的远程数据存储。虽然这在可信的本地网络中非常好,但是在开放网络中,如果没有适当的授权和身份验证,就无法做到这一点。你知道吗
所以我想知道,是否有机会在ZODB中实现以下概念:
在服务器端,我希望有一个ZEO服务器运行,加上一个游戏世界的模拟,它可以作为ZEO服务器上的完全授权客户机运行(或者使用与ZEO服务器相同的文件存储)。你知道吗
在客户端,我需要对ZEO服务器进行非常有限的读/写访问,以便客户端只能查看其用户应该知道的信息(例如,其角色的周围区域),并且只能修改与其角色可以执行的操作相关的信息。你知道吗
这些限制必须由服务器使用某种细粒度授权方案来实施。所以我需要能够告诉服务器用户A是否有读/写对象B的权限
现在有没有办法在ZODB或第三方解决方案中解决这类问题?或者有没有办法用这种方式扩展ZEO?你知道吗
不,ZEO从来就不是为这种用途而设计的。你知道吗
它是为跨多个进程扩展ZODB访问而设计的,身份验证和授权留给数据之上的应用程序。你知道吗
无论如何,我不会用ZEO来处理本地网络之外的任何事情。使用不同的协议来处理游戏客户端和游戏服务器之间的通信,而只保留ZODB服务器端。你知道吗
相关问题 更多 >
编程相关推荐