@@ -53,8 +53,41 @@ func socketServer() (err error) {
53
53
Origin : "*" ,
54
54
Credentials : true ,
55
55
})
56
+ var globalRooms map [string ][]string
57
+
56
58
io := socket .NewServer (httpServer , c )
57
- err = io .On ("connection" , func (clients ... any ) {
59
+ err = io .Of ("/hall" , nil ).On ("connection" , func (clients ... any ) {
60
+ client := clients [0 ].(* socket.Socket )
61
+ err = client .Emit ("sendRooms" , map [string ]interface {}{
62
+ "roomData" : globalRooms ,
63
+ })
64
+ if err != nil {
65
+ fmt .Println ("Error in sendRooms" , err )
66
+ }
67
+ err = client .On ("createRooms" , func (roomsData ... any ) {
68
+ for _ , data := range roomsData {
69
+ if data != nil {
70
+ var jsonData []byte
71
+ jsonData , err = json .Marshal (data )
72
+ if err != nil {
73
+ return
74
+ }
75
+ room := string (jsonData )
76
+ globalRooms [room ] = make ([]string , 0 )
77
+ }
78
+ }
79
+ err = client .Emit ("sendRooms" , map [string ]interface {}{
80
+ "roomData" : globalRooms ,
81
+ })
82
+ })
83
+ if err != nil {
84
+ fmt .Println ("Error in createRooms" , err )
85
+ }
86
+ })
87
+ if err != nil {
88
+ return
89
+ }
90
+ err = io .Of ("/room" , nil ).On ("connection" , func (clients ... any ) {
58
91
// only one client in this function
59
92
60
93
for i , client := range clients {
@@ -142,6 +175,8 @@ func socketServer() (err error) {
142
175
roomID = data .RoomID
143
176
var room = socket .Room (data .RoomID )
144
177
fmt .Println ("Info: client" + data .SocketID + " joined room " + data .RoomID )
178
+ globalRooms [roomID ] = make ([]string , 0 )
179
+ globalRooms [roomID ] = append (globalRooms [roomID ], string (id ))
145
180
client .Join (room )
146
181
// for _, i := range client.Rooms().Keys() {
147
182
// fmt.Println(i)
0 commit comments