Редактор ACE, добавление и обновление нескольких курсоров в документе с помощью socket.io

Я пытаюсь создать сеанс совместной работы в реальном времени, используя редактор ACE и socket.io.

Я передаю позицию курсора, строку и столбец всем слушающим клиентам.

Как добавить и обновить несколько курсоров на всех подключенных клиентах ACE?

Вот что я получил на асе:

Collaborate.editor.getSession().selection.on('changeCursor', function(e) {

console.log(Collaborate.editor.selection.getCursor());
              Collaborate.socket.emit('cursorchange',Collaborate.editor.selection.getCursor());

});

И вот что у меня происходит с socket.io:

socket.on('cursorchange',функция (данные) {

    socket.broadcast.to(socket.room).emit('cursorusermove', socket.username, data);


});
  1. Как добавить еще один курсор в документ всех прослушивающих клиентов.
  2. По какой-то причине я получаю несколько вызовов сокетов и бесконечный цикл. Что я делаю неправильно?

person Alon Carmel    schedule 21.05.2014    source источник


Ответы (1)


addSelectionMarker предназначен для рисования маркеров выбора по умолчанию, он не позволяет устанавливать цвет. Используйте addMarker напрямую или используйте addDynamicMarker, см. пример search_highlight.

Кажется, я не могу отменить предыдущий выбор, оставив редакторы заполненными тоннами выбора и курсорами.

либо вызовите removeMarker, либо измените старый диапазон.

вы также можете попробовать использовать код с http://www.firepad.io/examples/#ace-FHNSp4Vai7

person a user    schedule 21.05.2014