Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/299.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.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
使用WebSocket(Javascript)在其他窗口中模拟鼠标事件_Javascript_Php_Jquery_Websocket - Fatal编程技术网

使用WebSocket(Javascript)在其他窗口中模拟鼠标事件

使用WebSocket(Javascript)在其他窗口中模拟鼠标事件,javascript,php,jquery,websocket,Javascript,Php,Jquery,Websocket,这里我试图实现的是,制作一个websocket程序,如果用户在一个窗口中“mousedown+mousemoves”,则在另一个浏览器窗口中触发相同的事件。 以下是我迄今为止所做的工作: 客户端JS代码: 现在,此代码由JS中的客户端按以下方式处理: websocket.onmessage=函数(ev){ var msg=JSON.parse(ev.data);//PHP发送JSON数据 var wwx=msg.we; var mmx=msg.me; var ex=msg.ev; var

这里我试图实现的是,制作一个websocket程序,如果用户在一个窗口中“mousedown+mousemoves”,则在另一个浏览器窗口中触发相同的事件。

以下是我迄今为止所做的工作:

客户端JS代码:

现在,此代码由JS中的客户端按以下方式处理:

websocket.onmessage=函数(ev){
var msg=JSON.parse(ev.data);//PHP发送JSON数据
var wwx=msg.we;
var mmx=msg.me;
var ex=msg.ev;
var uname=msg.name;//用户名
var xx=msg.x;
var yy=msg.y;
如果(!(uname==“”){
如果(ex==“移动”){
eone=$.Event('mousemove');
eone.pageX=xx;
eone.pageY=yy;
etwo=$.Event('click');
etwo.pageX=wwx;
etwo.pageY=mmx;
$(文档).trigger(eone).trigger(etwo);
}

这段代码没有触发任何东西。有什么想法吗?有什么解决办法吗?

没有足够的数据,请说明它被卡住的位置。消息是否被发送?它是否到达另一端?控制台中是否有任何错误?问题出在“$(文档)。触发器(eone)。触发器(etwo);”行中出于某种原因,它不起作用……我尝试从代码中删除它,然后用坐标和代码发出警报,效果很好,但当我重新添加它时,它会发出警报……从一个事件到另一个事件,有什么可能会停止?我们可以触发多个这样的事件吗?你现在可能已经解决了这个问题,但如果没有,我会尝试减少你的问题可以归结为一个简单的JSFIDLE,它将鼠标移动到一个特定的点并触发一次点击。如果这不起作用,那么文章的其余部分都是无关的,只是噪音,你会更成功地得到响应。
 var clicking = false;
 $(document).mouseup(function(){
         clicking = false;
       });

 $('#canvas').mousedown(function(e){
       clicking = true;
       var ww= e.pageX;
       var mm = e.pageY;
     
('#canvas').mousemove(function(event){ 
      if(clicking === false) 
         {  
      var msg = { //sends data
     w:'',
     m:'',
     type:"simple",
     x:event.pageX,
     y:event.pageY,
     name: myname,
     color : '<?php echo $colours[$user_colour]; ?>'
    };
         }
else{
var msg = {
    w:'ww',
    m:'mm',
    type:"move", 
    x:event.pageX,
    y:event.pageY,
    name: myname,
    color : '<?php echo $colours[$user_colour]; ?>'
    };
        }
 
 websocket.send(JSON.stringify(msg));   
 
 
 });
});
    $tst_msg = json_decode($received_text); //json decode 
$user_name = $tst_msg->name; //sender name
$typ = $tst_msg->type;       
$m = $tst_msg->m; //clickcoordinates
$w = $tst_msg->w;
$x = $tst_msg->x;// coordinates
$y = $tst_msg->y; // y-coordinate (user)
$e = $tst_msg->ev;
        //prepare data to be sent to client
if($typ == "move"){
        $response_text = mask(json_encode(array('me'=>$m,'we'=>$w,'ev'=>'moving','type'=>'usermsg', 'name'=>$user_name,  'x'=>$x,'y'=>$y)));
         send_message($response_text); //send data
         }
    else{
        $response_text = mask(json_encode(array('me'=>$m,'we'=>$w,'ev'=>'simple','type'=>'usermsg', 'name'=>$user_name,  'x'=>$x,'y'=>$y)));
        send_message($response_text); //send data
        }
websocket.onmessage = function(ev) {
     var msg = JSON.parse(ev.data); //PHP sends Json data
     var wwx = msg.we;
     var mmx = msg.me;
     var ex = msg.ev;
     var uname = msg.name; //user name
     var xx = msg.x;
     var yy = msg.y;
    
     if(!(uname== "<?php echo $_COOKIE['name'];?>")){
    if(ex=="moving"){
    eone = $.Event('mousemove');
    eone.pageX = xx;
            eone.pageY = yy;
    etwo = $.Event('click');
    etwo.pageX = wwx;
            etwo.pageY = mmx;
    $(document).trigger(eone).trigger(etwo);
    
    
    }