我想写一个页面,它启用另一个用户的间谍活动。
两个用户观看同一页面,这非常简单(垂直滚动条,输入,按钮,checbox ......)。 第一个用户在其页面上执行的每个动作都会立即被第二个用户看到。 例如,如果第一个用户单击按钮,则第二个用户观察单击他自己的页面(两个用户的页面看起来相同)。 简单地说,第二个用户可以看到第一个用户正在做的事情(实时)
当然,我认为,我控制了这个网页的代码。
我的问题:
有没有一种简单的方法可以做到这一点,或者我必须为每个事件编写处理程序并使用Ajax Web Sockets明确地向第二个用户发送数据? 是否有可能拦截另一个用户的框架而无需处理每个动作?
我写了这个基于websockets的间谍程序的基本版本。第一个用户执行的每个操作都会发送给另一个用户 收到消息后,程序解析数据,并调用适当的方法,所以我在两个页面上都有相同的行为。 它的工作正确,但如果我想在不完全了解页面的情况下这样做,那么使用这种方法将会是更复杂的任务 (在我的版本中,用户具有相同的html内容,因此我可以应用这些方法)。 总而言之,我正在寻找更简单的解决方案(没有处理每个事件的必要性)。
到目前为止,我已经在Stack Overflow上浏览了大约50个网页,文章和答案,但是没有找到任何谈论更简单解决方案的内容 (我的朋友提出了类似的问题,但答案很少)。 我对完整的解决方案不感兴趣,我希望你能给我一些有价值的提示或明显的链接。 也许我没有输入正确的短语...
感谢您的帮助
答案 0 :(得分:0)
你的问题最有可能被低估,因为它听起来很恶意。我不会在标题中用“间谍”一词提问,而是使用“合作”这个词。从我上面刚刚读到的内容来看,你想要做的就是和另一个客户在同一个屏幕上工作,而不是“间谍”。
无论如何,回答你的问题:
你以前来过togetherJS吗?这是一个插件,允许2个或更多用户之间的实时协作。您的整个DOM操作将显示在合作伙伴的屏幕上,因此您将不再需要为DOM中的每个元素编写事件处理程序操作。该项目也由mozilla托管,因此您甚至不必自己托管实时服务器来使用该插件。赢了!
项目网页上有一些精彩的演示,展示了该插件的用途。查看collaborative drawing demo以获得一个简单而有效的示例。
至于将插件实际集成到您的网站中,它可能会更容易。只需在您的页面上包含托管脚本,如下所示:
<script src="https://togetherjs.com/togetherjs-min.js"></script>
然后在您的网站上初始化插件。这可以在文档就绪事件中完成,也可以使用示例中的按钮完成:
<button onclick="TogetherJS(this); return false;">Start TogetherJS</button>
现在,当您想要启动协作会话时,只需邀请其他客户端访问您的页面,您就可以在实时时间内查看两个用户之间页面上发生的情况。
希望这可以帮助你。