diff --git a/server/MMVCServerSIO.py b/server/MMVCServerSIO.py index df868cb1..5dcec5f9 100755 --- a/server/MMVCServerSIO.py +++ b/server/MMVCServerSIO.py @@ -1,16 +1,4 @@ -import sys, os, struct, argparse, logging, shutil, base64, traceback -# logging.getLogger('numba').setLevel(logging.WARNING) - -# class UvicornSuppressFilter(logging.Filter): -# def filter(self, record): -# return False - -# logger = logging.getLogger("uvicorn.error") -# logger.addFilter(UvicornSuppressFilter()) -# # logger.propagate = False -# logger = logging.getLogger("multipart.multipart") -# logger.propagate = False - +import sys, os, struct, argparse, shutil, base64, traceback import misc.log_control from dataclasses import dataclass @@ -51,8 +39,8 @@ from mods.VoiceChanger import VoiceChanger from mods.ssl import create_self_signed_cert -from sio.MMVC_Namespace import MMVC_Namespace from voice_changer.VoiceChangerManager import VoiceChangerManager +from sio.MMVC_SocketIOServer import MMVC_SocketIOServer @dataclass class ExApplicationInfo(): external_tensorboard_port: int @@ -158,13 +146,14 @@ if __name__ == thisFilename or args.colab == True: app_fastapi.mount( "/recorder", StaticFiles(directory="../frontend/dist", html=True), name="static") - sio = socketio.AsyncServer( - async_mode='asgi', - cors_allowed_origins='*' - ) + # sio = socketio.AsyncServer( + # async_mode='asgi', + # cors_allowed_origins='*' + # ) voiceChangerManager = VoiceChangerManager.get_instance() - namespace = MMVC_Namespace.get_instance(voiceChangerManager) - sio.register_namespace(namespace) + # namespace = MMVC_Namespace.get_instance(voiceChangerManager) + # sio.register_namespace(namespace) + sio = MMVC_SocketIOServer.get_instance(voiceChangerManager) if CONFIG and MODEL: voiceChangerManager.loadModel(CONFIG, MODEL) # namespace.loadWhisperModel("base") diff --git a/server/sio/MMVC_SocketIOServer.py b/server/sio/MMVC_SocketIOServer.py new file mode 100644 index 00000000..31a252e6 --- /dev/null +++ b/server/sio/MMVC_SocketIOServer.py @@ -0,0 +1,20 @@ +import socketio + +from sio.MMVC_Namespace import MMVC_Namespace +from voice_changer.VoiceChangerManager import VoiceChangerManager + +class MMVC_SocketIOServer(): + @classmethod + def get_instance(cls, voiceChangerManager:VoiceChangerManager): + if not hasattr(cls, "_instance"): + sio = socketio.AsyncServer( + async_mode='asgi', + cors_allowed_origins='*' + ) + namespace = MMVC_Namespace.get_instance(voiceChangerManager) + sio.register_namespace(namespace) + cls._instance = sio + return cls._instance + + return cls._instance +