You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tailchat/shared/api/socket.ts

33 lines
649 B
TypeScript

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();
});
});
}