我正在尝试使用ACE编辑器和socket.io创建实时协作会话。
我正在将光标位置,行和列传输给所有侦听客户端。
如何在所有连接的ACE客户端上添加和更新多个游标?
这就是我对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',function(data){
socket.broadcast.to(socket.room).emit('cursorusermove', socket.username, data);
});
答案 0 :(得分:2)
addSelectionMarker
用于绘制默认选择标记,但不允许设置颜色。
直接使用addMarker
或使用addDynamicMarker
查看search_highlight示例
我似乎无法取消选择之前的选择,让编辑充满了大量的 选择和游标。
调用removeMarker
或修改旧范围。