Skip to content

Commit 73d9ff7

Browse files
committed
fix: 修复readyState判断问题
1 parent c7bb04c commit 73d9ff7

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

packages/hooks/src/useWebSocket/index.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,19 @@ export default function useWebSocket(socketUrl: string, options: Options = {}):
4343
protocols,
4444
} = options;
4545

46+
const [latestMessage, setLatestMessage] = useState<WebSocketEventMap['message']>();
47+
const [readyState, setReadyState] = useState<ReadyState>(ReadyState.Closed);
48+
4649
const onOpenRef = useLatest(onOpen);
4750
const onCloseRef = useLatest(onClose);
4851
const onMessageRef = useLatest(onMessage);
4952
const onErrorRef = useLatest(onError);
53+
const readyStateRef = useLatest(readyState);
5054

5155
const reconnectTimesRef = useRef(0);
5256
const reconnectTimerRef = useRef<ReturnType<typeof setTimeout>>();
5357
const websocketRef = useRef<WebSocket>();
5458

55-
const [latestMessage, setLatestMessage] = useState<WebSocketEventMap['message']>();
56-
const [readyState, setReadyState] = useState<ReadyState>(ReadyState.Closed);
57-
5859
const reconnect = () => {
5960
if (
6061
reconnectTimesRef.current < reconnectLimit &&
@@ -123,7 +124,7 @@ export default function useWebSocket(socketUrl: string, options: Options = {}):
123124
};
124125

125126
const sendMessage: WebSocket['send'] = (message) => {
126-
if (readyState === ReadyState.Open) {
127+
if (readyStateRef.current === ReadyState.Open) {
127128
websocketRef.current?.send(message);
128129
} else {
129130
throw new Error('WebSocket disconnected');

0 commit comments

Comments
 (0)