Вы не устанавливаете позицию, используя переданные данные. В вашем примере это глобальные xp
и yp
.
Вы также не передали user
с данными при вызове emit
, поэтому другие клиенты на самом деле понятия не имеют, какого пользователя следует переместить. Я бы также предложил добавить это в качестве поля в отправляемых вами данных.
socket.emit('move', {
user: //THE VAR WHICH HOLDS THE SESSIONID FOR THIS USER
xp: xp,
yp: yp
});
socket.on('move', function(data) {
$('#user_' + data.user).animate({ left: data.xp + 'px', top: data.yp + 'px' }, 400 );
});
Использовать BeginInvoke:
delegate void sort();
private void treeView1_AfterLabelEdit(object sender, NodeLabelEditEventArgs e)
{
treeView1.BeginInvoke(new sort(treeView1.Sort));
}