2013-03-05 32 views
0

問題對jQuery UI的所有客戶端的Socket廣播下降

當用戶drags and drops的元素,使用jQuery UI,我想給dropbroadcast給其他用戶,使他們能夠看到element的更新後的位置。

問題

我如何配置腳本能夠發送使用socket.broadcast.emit元素的「下探」?

代碼

客戶端(下降設置)

$('#dropArea').droppable({ 

    drop: function(event, ui) { 
     var dropped = ui.draggable; 
     var droppedOn = $(this); 

     $(dropped).detach().css({ 
      top: 0, 
      left: 0 
     }).appendTo(droppedOn); 

     socket.emit('status', { 
      status: 'ToDo', 
      _id: $(this).find('p').data('id') 
     }); 

    } 
}); 

服務器(一些插座設置)

io.sockets.on('status', function(data) { 
    Item.findOne({_id: data._id}, function(err, item) { 
     if(err) throw err; 
     item.status = data.status; 
     item.save(); 
    }); 
    }); 

注意

emit「狀態」更新數據庫

回答

0

我制定了一種方法。我通過一個套接字將物品所需的相關數據發送給對象。

在服務器上,我做了我需要從mongoDB進行狀態更新,然後將對象廣播回所有客戶端。並從客戶端,從目前的位置中刪除項目,並重新結構,並附加到使用jQuery的新位置。

0

您可以在客戶端監聽以及此事件的元素狀態,

io.sockets.on('status', function(data) { 
    //do the update in client here 
    }); 

而另一件事情是你需要在這裏使用socket.broadcast.emit。因爲socket.emit將廣播該消息給廣播消息的客戶端的所有客戶端。

相關問題