Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 正在获取RequestFactory请求的通道客户端ID_Google App Engine_Requestfactory_Channel Api - Fatal编程技术网

Google app engine 正在获取RequestFactory请求的通道客户端ID

Google app engine 正在获取RequestFactory请求的通道客户端ID,google-app-engine,requestfactory,channel-api,Google App Engine,Requestfactory,Channel Api,有没有办法在服务器上获取通道ID或在RequestFactory调用中传输它 情况: 用户启动应用程序时,频道正在打开。 用户使用RequestFactory请求持久化实体。持久化。使用….fire。。。。 服务器上的persist方法ping所有连接的客户端,告诉它们实体已更新。 但是进行初始更改的用户不必ping。有没有办法找出是哪个客户做出了改变?仅仅了解用户是不够的,因为一个用户可能打开了多个windows频道。老实说,我还没有使用频道API,但根据文档,每个客户端都被视为单独的用户。因

有没有办法在服务器上获取通道ID或在RequestFactory调用中传输它

情况:

用户启动应用程序时,频道正在打开。 用户使用RequestFactory请求持久化实体。持久化。使用….fire。。。。 服务器上的persist方法ping所有连接的客户端,告诉它们实体已更新。
但是进行初始更改的用户不必ping。有没有办法找出是哪个客户做出了改变?仅仅了解用户是不够的,因为一个用户可能打开了多个windows频道。

老实说,我还没有使用频道API,但根据文档,每个客户端都被视为单独的用户。因此,解决方案超越了GAE API,我认为您有两种选择:

在客户端上创建逻辑用户ID,该ID将映射到可能的多个通道。这样你就知道该跳过哪些频道了。 仍然Ping所有通道,但发送新持久化实体的数字版本。然后,客户端将比较接收到的版本和它拥有的版本,如果它更高,则意味着它需要再次调用findModelid。
您可以演示如何ping客户端吗?CHANNEL\u SERVICE.sendmagesnew ChannelMessageclientId,message.toString;message是已更改的模型的id。然后,客户端重新加载此模型requests.modelRequest.FindModelLid.firemodelReceiver;。1.在这种情况下,服务器仍然不知道哪个客户机发出了哪个请求。2.这可能是一个解决方案。是的,看起来2是一个简单的选择。但这只有在我发回有版本的东西时才有效。我正在考虑覆盖一些RequestFactory调用,以便在每个请求中自动发送clientId。