首页 新闻 会员 周边 捐助

如何在打开多个网页后,只需在一个网页上操作,其他网页都会同步操作?

1
悬赏园豆:50 [已解决问题] 解决于 2017-06-20 15:26

问题描述:
1. 有点类似远程控制的效果,在操作端控制,然后大屏同步显示,实际上控制端和大屏是同一个JSP,只不过分辨率不同.
2. 我查找了有关dwr 和 websocket 相关的资料 , 感觉如果控制端操作少的话还好,由于要监控操作端的所有操作,实现起来有些麻烦.
3. dwr 和 websocket 都是把操作后的效果,操作到各个JSP.可不可以直接把事件直接封装,传递给不同JSP,然后调用各自JS执行操作.
也就是我我想要大屏模仿控制端的动作,而不是模仿控制端的效果.
4. 环境: JAVA + JSP + JS +tomcat
5. 可能我实现的思路不对,只要实现问题描述1的效果就可以,望各位不吝赐教!!!

问题补充:

结帖总结:

方案一: @花飘水流兮: VNC等远程控制软件,需要解决分辨率问题~ 目测方案可行,但没有实际验证.@
方案二: @幻天芒: @好来污影后: browser-sync前端同步测试工具~方案可行,暂时用的就是这种方法,实现简单~但是需要node.js环境~ 我是后端用的tomcat服务器,安装了node.js环境~整体结构略显臃肿~browser-sync工具基于websocket服务端推送技术~ 下步改进,打算直接用websocket
方案三: @幻天芒: dwr 和 websocket , 方案可行~ 但原来的设想(对动作事件进行封装,然后传递给服务端,然后再由服务端推送到各浏览器页面, 然后激发各浏览器的JS事件,改变各自的JSP~),能力有限,没想到具体方案~待下一步继续研究~私认为,此方案最优~
方案四: @小尧弟: (首先有个网络事件监听吧 这里我推荐使用redisListener)说实话,我没看懂~
方案五: @ 西漠以西: 直播系统方面的资料比较少~没有找到,确切思路~但私认为直播系统应该也是用的dwr,websocket等服务端推送之类的技术~

感谢各位的提醒和帮助~

且听风吟_z的主页 且听风吟_z | 初学一级 | 园豆:48
提问于:2017-06-15 01:25
< >
分享
最佳答案
1

可能走websocket要靠谱些,灵活性也更强。

收获园豆:10
幻天芒 | 高人七级 |园豆:37207 | 2017-06-15 09:31

嗯,我也是着这样考虑的~但是, 就像我第二三条说的那样~可不可以对动作事件进行封装,然后传递给服务端,然后再由服务端推送到各浏览器页面, 然后激发各浏览器的JS事件,改变各自的JSP~

且听风吟_z | 园豆:48 (初学一级) | 2017-06-15 11:26

@且听风吟_z: 实际上就应该这么玩,不过轨迹之类的要考量一下,应该有延时。

幻天芒 | 园豆:37207 (高人七级) | 2017-06-15 12:19

@且听风吟_z: browser-sync 这个node包,就支持同步操作,利用websocket。没有轨迹。

幻天芒 | 园豆:37207 (高人七级) | 2017-06-15 12:21

@幻天芒: 

问题解决, 虽并不完美~但能用~ PS:我是后端用的tomcat服务器,没有node.js ~按照你的方法~又安装了node.js环境~整体结构略显臃肿~

因为browser-sync也是基于websocket,下步改进打算直接用websocket实现

感谢提醒!! 

且听风吟_z | 园豆:48 (初学一级) | 2017-06-20 15:01

@且听风吟_z: 只要你模拟这个思路,并不需要browser-sync。这样就没有额外的依赖了。

幻天芒 | 园豆:37207 (高人七级) | 2017-06-20 16:30

@幻天芒: 嗯,下一步的实现目标~

且听风吟_z | 园豆:48 (初学一级) | 2017-06-20 20:00
其他回答(4)
1

这根网页没什么关系吧,有用网页做的,但是目的不一样,且底层是基于vnc;

你这玩意儿用网络屏幕或者mstsc或者vnc有什么问题,或者直接基于视频流做个点到点直播(反正这种监控软件多)。

收获园豆:10
花飘水流兮 | 园豆:13615 (专家六级) | 2017-06-15 02:10

用远程控制软件也考虑过,但是由于大屏和控制端的分辨率不一样,没有验证过显示有没有问题~

我上面所说的方法是第二个方案,考虑到以后可能控制端可能和显示端界面可能不一样,这个有点像多屏互动的样子~

谢谢回复~

支持(0) 反对(0) 且听风吟_z | 园豆:48 (初学一级) | 2017-06-15 02:32

@且听风吟_z: 不管哪个传输方案,显示你是需要花更大力气的,而且一定是需要常驻线程或者进程来搞定,那么vnc比较现成的,Windows的网络屏幕不多么稳定,且也不那么Open方便。

支持(0) 反对(0) 花飘水流兮 | 园豆:13615 (专家六级) | 2017-06-15 10:51

@花飘水流兮: 嗯,是的~用服务端推送,比VNC实现起来麻烦. 只不过,用VNC就无法解决以后可能的控制端和显示端界面不一样的问题~ 类似下图所示

支持(0) 反对(0) 且听风吟_z | 园豆:48 (初学一级) | 2017-06-15 11:07
1

首先有个网络事件监听吧  这里我推荐使用redisListener

至于优化自己做吧

 

收获园豆:10
牧师/preacher | 园豆:500 (菜鸟二级) | 2017-06-15 13:41

redisListener是什么?消息队列的监听吗? 不懂哦~

支持(0) 反对(0) 且听风吟_z | 园豆:48 (初学一级) | 2017-06-16 13:55

@且听风吟_z:

一般页面可以自适应屏幕

既然打开的是页面,其中某一个页面上做过一个修改后,要将修改数据同步到其他页面中

这种做饭有两种:1、实时页面数据;2、响应页面数据

当然实时页面数据这个应该是很好做的,只要所有客户端页面使用同一个数据源,页面数据会同步显示

响应页面数据,举例可以nodejs里加入一个redis监听channel,当其中某一个页面上的数据被修改后,服务器接收到这个响应后,将修改后的数据通过redis channel渠道分发到各个客户端。

支持(0) 反对(0) 牧师/preacher | 园豆:500 (菜鸟二级) | 2017-06-17 09:31
1

你需要的是一个直播系统,这不关web ,socket ,dwr 远程屏幕,啥事。

 

本质上,就是需要一个东西对一个客户端上用户的操作进行录屏,然后这个视频流被推送到直播系统,最后,另一个客户端观看视频。

收获园豆:10
西漠以西 | 园豆:1675 (小虾三级) | 2017-06-16 09:43

对直播系统不是很了解~听你这样一讲,感觉会可能是解决之道~我再找些直播系统的资料,谢谢提醒~

只不过按我的理解,直播系统应该也是用的dwr,websocket等服务端推送之类的技术吧~要不然怎么能实现多客户端的操作(例如聊天,消息等)同步呢?

支持(0) 反对(0) 且听风吟_z | 园豆:48 (初学一级) | 2017-06-16 13:53
1

给你看个东西,如果对你有帮助,你可要粉我哈~

//<![CDATA[
    document.write("<script async src='/browser-sync/browser-sync-client.js?v=2.18.8'><\/script>".replace("HOST", location.hostname));
//]]>

你把这个拿去研究下,应该是你需要的。

收获园豆:10
好来污影后 | 园豆:287 (菜鸟二级) | 2017-06-16 15:21

问题解决, 虽并不完美~但能用~ PS:我是后端用的tomcat服务器,没有node.js ~按照你的方法~有安装了node.js环境~整体结构略显臃肿~

因为browser-sync也是基于websocket,下步改进打算直接用websocket实现

感谢提醒!! 粉你哦~

支持(0) 反对(0) 且听风吟_z | 园豆:48 (初学一级) | 2017-06-20 15:00

@且听风吟_z: good~

支持(0) 反对(0) 好来污影后 | 园豆:287 (菜鸟二级) | 2017-06-20 15:03
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册