...
| 이벤트 타입 | 설명 |
|---|
| ON_SYNC | - 실시간 협업이 연결되었을 때 발생합니다.
- 리스너의 parameter로 전달되는 값:
| Name | Type | Description |
|---|
| event | Object |
| Code Block |
|---|
| {
setForceUpdate: (update: boolean) => void
} |
- setForceUpdate(update): 실시간 협업 모델을 현재 에디터에 작성된 모델로 강제로 업데이트할지 여부를 설정합니다.
|
| Code Block |
|---|
| language | js |
|---|
| theme | Emacs |
|---|
| title | example |
|---|
| var editor = new SynapEditor(id, synapEditorConfig);
var collaboration = editor.plugins.collaboration;
var EVENT_TYPE = collaboration.EVENT_TYPE;
collaboration.on(EVENT_TYPE.ON_SYNC, function (event) {
event.setForceUpdate(true);
}); |
|
| USER_CHANGED | - 접속 중인 사용자 수가 변경되었을 때 발생합니다.
- 리스너의 parameter로 전달되는 값:
| Name | Type | Description |
|---|
| users | Object[] | 접속 중인 사용자 목록 배열입니다. | Code Block |
|---|
| [
{ id: {number}, name: {string}, color: {string}, data: {Object}, position: {Position}, modified: {number}, self: {boolean} },
....
] |
- id: 사용자의 Client Id
- name: 사용자의 이름
- color: 사용자 색
- data: 사용자 데이터
- position: 사용자의 커서 위치 정보
- modified: 마지막으로 업데이트된 시간 timestamp
- self: 사용자가 나 인지 여부
| | added | number[] | 추가된 사용자의 Client Id 배열입니다. | | removed | number[] | 제거된 사용자의 Client Id 배열입니다. |
| Code Block |
|---|
| language | js |
|---|
| theme | Emacs |
|---|
| title | example |
|---|
| var editor = new SynapEditor(id, synapEditorConfig);
var collaboration = editor.plugins.collaboration;
var EVENT_TYPE = collaboration.EVENT_TYPE;
collaboration.on(EVENT_TYPE.USER_CHANGED, function (users, added, removed) {}); |
|
| USER_INFO_CHANGED | - 접속 중인 사용자의 이름, 색, 커서 위치 정보가 변경되거나 사용자 수가 변경되었을 때 발생합니다.
- 리스너의 parameter로 전달되는 값:
| Name | Type | Description |
|---|
| users | Object[] | 접속 중인 사용자 목록 배열입니다. | Code Block |
|---|
| [
{ id: {number}, name: {string}, color: {string}, data{Object}, position: {Position}, modified: {number}, self: {boolean} },
....
] |
- id: 사용자의 Client Id
- name: 사용자의 이름
- color: 사용자 색
- data: 사용자 데이터
- position: 사용자의 커서 위치 정보
- modified: 마지막으로 업데이트된 시간 timestamp
- self: 사용자가 나 인지 여부
|
| Code Block |
|---|
| language | js |
|---|
| theme | Emacs |
|---|
| title | example |
|---|
| var editor = new SynapEditor(id, synapEditorConfig);
var collaboration = editor.plugins.collaboration;
var EVENT_TYPE = collaboration.EVENT_TYPE;
collaboration.on(EVENT_TYPE.USER_INFO_CHANGED, function (users) {}); |
|
...
| Code Block |
|---|
| language | js |
|---|
| theme | Emacs |
|---|
| title | example |
|---|
|
var editor = new SynapEditor(id, synapEditorConfig);
var collaboration = editor.plugins.collaboration;
collaboration.setUserName('#39b6b8'); |
setUserData(data)
사용자의 데이터를 기록합니다.
parameters:
| Name | Type | Description |
|---|
| name | Object | 필요한 사용자 정보를 저장합니다. |
| Code Block |
|---|
| language | js |
|---|
| theme | Emacs |
|---|
| title | example |
|---|
|
var editor = new SynapEditor(id, synapEditorConfig);
var collaboration = editor.plugins.collaboration;
collaboration.setUserData({ userId: 'userId', connected: Date.now() }); |
getClientId()
현재 사용자의 Client Id를 반환합니다.
...
docId 에 해당하는 문서로 실시간 협업이 시작됩니다.
parameters:
| Name | Type | Description |
|---|
| docId | string | 실시간 협업을 시작할 문서의 Id입니다. |
...
실시간 협업이 초기화 되는 시점에 실행될 함수를 설정합니다.
parameters:
| Name | Type | Description |
|---|
| fn | function | 실시간 협업이 초기화 되는 시점에 실행될 함수입니다. |
...
parameter로 modelJSON을 넘기지 않은 경우 에디터의 현재 모델로 업데이트 합니다. 업데이트 기록 데이터의 versions 가 초기화 됩니다.
parameters:
| Name | Type | Description |
|---|
| [modelJSON] | Object | 에디터 Body Model JSON |
...