Files
SMANAGE/GVSDServiceServer/apps/sub_server/apps.py
T
TermiNexus b078f8e9fe feat(订阅式软件提供): 产品定制页远端入口 + 我的订阅 + GVSDServiceServer
订阅组新增 RemoteEntry/RemoteModule(0053 迁移);新增 Provider/Page/Save(提供者用 ApiKey+密钥换取令牌后声明定制页)与 MySubscriptions(按当前用户查已订阅产品,含定制页入口)接口;清单新增「我的订阅」菜单与 subscriber 虚拟职务;新增提供者子服务器 GVSDServiceServer(仿 ATestCServer:MSYNC 桥接 + 托管 Venom 定制页远端组件 + 用订阅凭据声明定制页)。
2026-10-05 17:00:05 +08:00

47 lines
1.8 KiB
Python

"""模块:GVSDServiceServer 子服务器 AppConfig
Django 启动时启动 MSYNC Socket.IO 桥接(连接 → 注册 → 认证 → 心跳)。
未配置 MSYNC_SERVICE_SECRET 时跳过桥接(此时仍可使用订阅 API Key/密钥 接口)。
"""
import logging
import threading
from django.apps import AppConfig
from django.conf import settings
logger = logging.getLogger(__name__)
class SubServerConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'apps.sub_server'
verbose_name = 'GVSD 提供者子服务器'
verbose_name_plural = 'GVSD 提供者子服务器'
def ready(self):
self._connect_msync()
def _connect_msync(self):
if not getattr(settings, 'MSYNC_SERVICE_SECRET', ''):
logger.warning('未配置 MSYNC_SERVICE_SECRET,跳过 MSYNC 桥接(订阅 API Key 接口仍可用)')
return
try:
from msync_client.sio_client import MSyncSocketClient
client = MSyncSocketClient(
master_url=settings.MSYNC_MASTER_URL,
service_name=settings.MSYNC_SERVICE_NAME,
service_domain=settings.MSYNC_SERVICE_DOMAIN,
service_secret=settings.MSYNC_SERVICE_SECRET,
scope=settings.MSYNC_SERVICE_SCOPE,
heartbeat_interval=settings.MSYNC_HEARTBEAT_INTERVAL,
metadata={'Role': 'subscription-provider'},
)
setattr(settings, 'MSYNC_CLIENT', client)
threading.Thread(target=client.Connect, daemon=True).start()
logger.info('MSYNC Socket.IO 桥接线程已启动: %s → %s',
settings.MSYNC_SERVICE_NAME, settings.MSYNC_MASTER_URL)
except Exception as e:
logger.error('MSYNC 桥接启动失败: %s', e)