mirror of https://github.com/msgbyte/tailchat
refactor(web): 登录成功后连接到服务器
parent
7d80563741
commit
b3b88968a6
@ -0,0 +1,32 @@
|
||||
import { io, Socket } from 'socket.io-client';
|
||||
import { config } from '../config';
|
||||
import _isNil from 'lodash/isNil';
|
||||
|
||||
let socket: Socket;
|
||||
|
||||
/**
|
||||
* 创建Socket连接
|
||||
* 如果已经有Socket连接则关闭上一个
|
||||
* @param token Token
|
||||
*/
|
||||
export function createSocket(token: string) {
|
||||
if (!_isNil(socket)) {
|
||||
socket.close();
|
||||
}
|
||||
|
||||
return new Promise<void>((resolve, reject) => {
|
||||
socket = io(config.serverUrl, {
|
||||
transports: ['websocket'],
|
||||
auth: {
|
||||
token,
|
||||
},
|
||||
});
|
||||
socket.once('connect', () => {
|
||||
// 连接成功
|
||||
resolve();
|
||||
});
|
||||
socket.once('error', () => {
|
||||
reject();
|
||||
});
|
||||
});
|
||||
}
|
@ -0,0 +1,17 @@
|
||||
import { createSocket, useAsync } from 'pawchat-shared';
|
||||
import { getUserJWT } from '../utils/jwt-helper';
|
||||
|
||||
/**
|
||||
* 创建全局Socket
|
||||
*/
|
||||
export function useEnsureSocket() {
|
||||
const { loading, error } = useAsync(async () => {
|
||||
const token = await getUserJWT();
|
||||
if (typeof token === 'string') {
|
||||
await createSocket(token);
|
||||
console.log('当前socket连接成功'); // TODO
|
||||
}
|
||||
}, []);
|
||||
|
||||
return { loading, error };
|
||||
}
|
Loading…
Reference in New Issue