1

問題

ユーザーが を使用drags and dropsして要素を使用する場合、他のユーザーが の更新された位置を確認できるようにしjQuery UIます。broadcastdropelement

質問

を使用して要素の「ドロップ」を送信できるようにスクリプトを構成するにはどうすればよい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ステータス」は、データベース内の要素のステータスを更新します

4

2 に答える 2

0

このイベントでは、クライアント側でもリスナーを使用できます。

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

もう 1 つは、ここで使用する必要があることです。これは、メッセージをブロードキャストしているクライアントを使用して、すべてのクライアントにメッセージをブロードキャストするためですsocket.broadcast.emitsocket.emit

于 2013-03-06T03:52:08.287 に答える
0

方法を編み出した。オブジェクト内のアイテムに必要な関連データを、ソケットを介して送信しました。

サーバーでは、mongoDB から必要なステータス更新を行い、オブジェクトをすべてのクライアントにブロードキャストしました。クライアント側から、アイテムを現在の位置から削除し、再構築して jquery を使用して新しい位置に追加しました。

于 2013-03-07T10:17:20.067 に答える