Skip to content

Commit

Permalink
feat: destroy room when deleted (TexteaInc#8)
Browse files Browse the repository at this point in the history
  • Loading branch information
exuanbo committed Sep 2, 2022
1 parent fb849d5 commit ac11e25
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 8 deletions.
2 changes: 1 addition & 1 deletion example/src/App.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ export const App: React.FC = () => {
awareness.on('update', handleAwarenessUpdate)
const provider = createSocketIOProvider('ws:https://localhost:1234', 'test', yDoc, {
awareness,
autoConnectBroadcastChannel: true
autoConnect: false
})
setProvider(provider)
return () => {
Expand Down
6 changes: 3 additions & 3 deletions src/hooks.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,16 @@ const getInitialState = () => INITIAL_STATE
const noop = () => noop
const identity = <T>(value: T) => value

export function useSocketIOProviderState (provider: SocketIOProvider | undefined): SocketIOProviderState
export function useSocketIOProviderState (provider: SocketIOProvider | null | undefined): SocketIOProviderState

export function useSocketIOProviderState<StateSlice> (
provider: SocketIOProvider | undefined,
provider: SocketIOProvider | null | undefined,
selector: (state: SocketIOProviderState) => StateSlice,
equalityFn?: (a: StateSlice, b: StateSlice) => boolean
): StateSlice

export function useSocketIOProviderState<StateSlice> (
provider: SocketIOProvider | undefined,
provider: SocketIOProvider | null | undefined,
selector: (state: SocketIOProviderState) => StateSlice | SocketIOProviderState = identity,
equalityFn?: (a: StateSlice | SocketIOProviderState, b: StateSlice | SocketIOProviderState) => boolean
) {
Expand Down
8 changes: 4 additions & 4 deletions src/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ import type {
export interface Options {
awareness?: Awareness
/**
* @default false
* @default true
*/
autoConnect?: boolean
/**
* @default false
* @default true
*/
autoConnectBroadcastChannel?: boolean
}
Expand Down Expand Up @@ -67,8 +67,8 @@ export const createSocketIOProvider: CreateSocketIOProvider = (
doc,
{
awareness = new Awareness(doc),
autoConnect = false,
autoConnectBroadcastChannel = false
autoConnect = true,
autoConnectBroadcastChannel = true
} = {}
) => {
const store = createStore<SocketIOProviderState>()(
Expand Down
9 changes: 9 additions & 0 deletions src/server/socket/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -91,5 +91,14 @@ export const createSocketServer = (httpServer: HTTPServer) => {
})
})

io.sockets.adapter.on('delete-room', (roomName: string) => {
if (roomMap.has(roomName)) {
const room = roomMap.get(roomName)!
room.doc.destroy()
room.awareness.destroy()
roomMap.delete(roomName)
}
})

return io
}

0 comments on commit ac11e25

Please sign in to comment.