|
|
|
@ -50,6 +50,7 @@ import json
|
|
|
|
|
import multiprocessing as mp
|
|
|
|
|
import sqlite3
|
|
|
|
|
import os
|
|
|
|
|
import socket
|
|
|
|
|
|
|
|
|
|
app = Flask(__name__)
|
|
|
|
|
# sockets = Sockets(app)
|
|
|
|
@ -92,8 +93,8 @@ def set_status(db_path, status_code: int):
|
|
|
|
|
"""
|
|
|
|
|
更新数据库中 livetlking_enable_status 的状态值
|
|
|
|
|
0 未启动(前端写入)
|
|
|
|
|
1 启动成功
|
|
|
|
|
2 启动中
|
|
|
|
|
1 启动中
|
|
|
|
|
2 启动成功
|
|
|
|
|
3 启动失败
|
|
|
|
|
"""
|
|
|
|
|
conn = sqlite3.connect(db_path, check_same_thread=False)
|
|
|
|
@ -125,6 +126,16 @@ def update_sessionid_in_db(sessionid):
|
|
|
|
|
if conn:
|
|
|
|
|
conn.close()
|
|
|
|
|
|
|
|
|
|
# 检查端口是否可用
|
|
|
|
|
def check_port(port: int):
|
|
|
|
|
"""检查端口是否被占用"""
|
|
|
|
|
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
|
|
|
|
|
try:
|
|
|
|
|
s.bind(('0.0.0.0', port)) # 尝试绑定端口
|
|
|
|
|
return True # 端口可用
|
|
|
|
|
except socket.error:
|
|
|
|
|
return False # 端口已占用
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def build_nerfreal(sessionid: int) -> BaseReal:
|
|
|
|
|
opt.sessionid = sessionid
|
|
|
|
@ -522,6 +533,15 @@ if __name__ == '__main__':
|
|
|
|
|
for route in list(appasync.router.routes()):
|
|
|
|
|
cors.add(route)
|
|
|
|
|
|
|
|
|
|
# 端口配置
|
|
|
|
|
listen_port = opt.listenport # 从配置中获取监听端口
|
|
|
|
|
|
|
|
|
|
# 检查端口是否被占用
|
|
|
|
|
if not check_port(listen_port):
|
|
|
|
|
logger.error(f"端口 {listen_port} 已被占用,无法启动服务。")
|
|
|
|
|
set_status(db_path, 3) # 设置为启动失败
|
|
|
|
|
exit(1) # 退出程序
|
|
|
|
|
|
|
|
|
|
pagename = 'webrtcapi.html'
|
|
|
|
|
if opt.transport == 'rtmp':
|
|
|
|
|
pagename = 'echoapi.html'
|
|
|
|
|