问题描述:
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等服务端推送之类的技术~
感谢各位的提醒和帮助~
可能走websocket要靠谱些,灵活性也更强。
嗯,我也是着这样考虑的~但是, 就像我第二三条说的那样~可不可以对动作事件进行封装,然后传递给服务端,然后再由服务端推送到各浏览器页面, 然后激发各浏览器的JS事件,改变各自的JSP~
@且听风吟_z: 实际上就应该这么玩,不过轨迹之类的要考量一下,应该有延时。
@且听风吟_z: browser-sync 这个node包,就支持同步操作,利用websocket。没有轨迹。
@幻天芒:
问题解决, 虽并不完美~但能用~ PS:我是后端用的tomcat服务器,没有node.js ~按照你的方法~又安装了node.js环境~整体结构略显臃肿~
因为browser-sync也是基于websocket,下步改进打算直接用websocket实现
感谢提醒!!
@且听风吟_z: 只要你模拟这个思路,并不需要browser-sync。这样就没有额外的依赖了。
@幻天芒: 嗯,下一步的实现目标~
这根网页没什么关系吧,有用网页做的,但是目的不一样,且底层是基于vnc;
你这玩意儿用网络屏幕或者mstsc或者vnc有什么问题,或者直接基于视频流做个点到点直播(反正这种监控软件多)。
用远程控制软件也考虑过,但是由于大屏和控制端的分辨率不一样,没有验证过显示有没有问题~
我上面所说的方法是第二个方案,考虑到以后可能控制端可能和显示端界面可能不一样,这个有点像多屏互动的样子~
谢谢回复~
@且听风吟_z: 不管哪个传输方案,显示你是需要花更大力气的,而且一定是需要常驻线程或者进程来搞定,那么vnc比较现成的,Windows的网络屏幕不多么稳定,且也不那么Open方便。
@花飘水流兮: 嗯,是的~用服务端推送,比VNC实现起来麻烦. 只不过,用VNC就无法解决以后可能的控制端和显示端界面不一样的问题~ 类似下图所示
首先有个网络事件监听吧 这里我推荐使用redisListener
至于优化自己做吧
redisListener是什么?消息队列的监听吗? 不懂哦~
@且听风吟_z:
一般页面可以自适应屏幕
既然打开的是页面,其中某一个页面上做过一个修改后,要将修改数据同步到其他页面中
这种做饭有两种:1、实时页面数据;2、响应页面数据
当然实时页面数据这个应该是很好做的,只要所有客户端页面使用同一个数据源,页面数据会同步显示
响应页面数据,举例可以nodejs里加入一个redis监听channel,当其中某一个页面上的数据被修改后,服务器接收到这个响应后,将修改后的数据通过redis channel渠道分发到各个客户端。
你需要的是一个直播系统,这不关web ,socket ,dwr 远程屏幕,啥事。
本质上,就是需要一个东西对一个客户端上用户的操作进行录屏,然后这个视频流被推送到直播系统,最后,另一个客户端观看视频。
对直播系统不是很了解~听你这样一讲,感觉会可能是解决之道~我再找些直播系统的资料,谢谢提醒~
只不过按我的理解,直播系统应该也是用的dwr,websocket等服务端推送之类的技术吧~要不然怎么能实现多客户端的操作(例如聊天,消息等)同步呢?
给你看个东西,如果对你有帮助,你可要粉我哈~
//<![CDATA[ document.write("<script async src='/browser-sync/browser-sync-client.js?v=2.18.8'><\/script>".replace("HOST", location.hostname)); //]]>
你把这个拿去研究下,应该是你需要的。
问题解决, 虽并不完美~但能用~ PS:我是后端用的tomcat服务器,没有node.js ~按照你的方法~有安装了node.js环境~整体结构略显臃肿~
因为browser-sync也是基于websocket,下步改进打算直接用websocket实现
感谢提醒!! 粉你哦~
@且听风吟_z: good~