问题描述:
1. 为了实现小屏控制大屏的效果(大小屏内容一样,分辨率不一样),所以用websocket进行前后端通信,想把前端动作产生的事件Event转发到服务器,然后再由服务器分发到受控端,受控端接收到事件后,触发相应动作。然而webSocket只能发送String或者二进制类型的数据,所以要把Event转为JSON或者字符串类型。
2.尝试各种js对象转换字符串方法
var Event2Str = $(event).serializeArray();
var Event2Str = JSON.stringify(event);
均不能实现完全转换的目的(仅转换第一个属性)。
3. 环境: JAVA(Springmvc) + JSP + JS +tomcat
4. 可能我实现的思路不对,只要实现小屏控大屏的效果就可以,望各位不吝赐教!!!
5.参考:
内容一样是不是可以理解为DOM一样,那就不需要传递event,传递两件事:
1.触发元素:element
2.动作: eventType
当大屏幕接收到后,用指定元素模拟触发相应类型的事件,就能产生同样的event。
借宝地写下结贴总结:
最终还是决定写独立的控制软件~ over
.......你在想啥.你以为event只是一个对象吗..你传过去接收的地方怎么用?
event不只是一个对象啊?那如果我要实现 前端(控制端)--服务端(转发)--前端(受控端) ,应该发送什么数据过去呢?可以使受控端接收到数据后,可以根据数据来产生相应的动作,能不能简单说下实现思路?
PS:我现在的实现是 前端动作编号-->发送数据编号(1,2,3,4...)-->websocket接受数据,并转发给受控端,受控端根据接受的编号来执行相应的动作 。 这种方法可以实现,但是业务量大的话,那就是灾难~
@且听风吟_z: 你后面说的是对的.
如果大小屏内容一样,那就不需要这样做了,随便一个投屏软件就可以实现小屏投影到大屏的功能,而且同步杠杠的。
如果大小屏不一样,那你传递的也不应该是event对象,你需要传递的是参数以及方法名,大屏需要用callback方式调用js方法就行了。