@@ -5,10 +5,11 @@ import {
55 WebSocketGateway ,
66 WebSocketServer ,
77} from '@nestjs/websockets' ;
8- import { Logger } from '@nestjs/common' ;
8+ import { Injectable , Logger } from '@nestjs/common' ;
99import { Server } from 'socket.io' ;
1010import { YSocketIO } from 'y-socket.io/dist/server' ;
1111import * as Y from 'yjs' ;
12+ import { NodeService } from '../node/node.service' ;
1213
1314@WebSocketGateway ( 1234 )
1415export class YjsService
@@ -17,6 +18,7 @@ export class YjsService
1718 private logger = new Logger ( 'YjsGateway' ) ;
1819 private ysocketio : YSocketIO ;
1920
21+ constructor ( private readonly nodeService : NodeService ) { }
2022 @WebSocketServer ( )
2123 server : Server ;
2224
@@ -32,13 +34,31 @@ export class YjsService
3234
3335 this . ysocketio . initialize ( ) ;
3436
35- this . ysocketio . on ( 'document-loaded' , ( doc : Y . Doc ) => {
36- this . logger . log ( `Document loaded: ${ doc . guid } ` ) ;
37+ this . ysocketio . on ( 'document-update' , ( doc : Y . Doc ) => {
38+ // console.log(doc.get("content").doc.share.get("content"));
39+ // console.log(doc.share.get('default'));
40+ } ) ;
3741
38- const titleMap = doc . getMap ( 'title' ) ;
39- titleMap . observe ( ( ) => {
40- console . log ( titleMap . toString ( ) ) ;
42+ this . ysocketio . on ( 'document-loaded' , ( doc : Y . Doc ) => {
43+ doc . on ( 'update' , ( update ) => {
44+ // console.log(Y.decodeUpdate(update).structs);
45+ // console.log(doc.share.get('default'));
46+ const nodes = Object . values ( doc . getMap ( 'nodes' ) . toJSON ( ) ) ;
47+ console . log ( nodes ) ;
48+ nodes . forEach ( ( node ) => {
49+ const { title, id } = node . data ;
50+ const { x, y } = node . position ;
51+ console . log ( title , id , x , y ) ;
52+ this . nodeService . updateNode ( id , { title, x, y } ) ;
53+ } ) ;
4154 } ) ;
55+ this . logger . log ( `Document loaded: ${ doc . guid } ` ) ;
56+ setTimeout ( ( ) => {
57+ const titleMap = doc . getMap ( 'title' ) ;
58+ titleMap . observe ( ( ) => {
59+ console . log ( titleMap . toString ( ) ) ;
60+ } ) ;
61+ } , 5000 ) ;
4262 // const toggleMap = doc.getMap('toggleMap');
4363 // toggleMap.observe(() => {
4464 // const toggleState = toggleMap.get('toggle') || false;
0 commit comments