添加端口占用是,更新状态3

main
fanpt 2 weeks ago
parent 13b13f599a
commit fd4f4a805a

@ -50,6 +50,7 @@ import json
import multiprocessing as mp import multiprocessing as mp
import sqlite3 import sqlite3
import os import os
import socket
app = Flask(__name__) app = Flask(__name__)
# sockets = Sockets(app) # sockets = Sockets(app)
@ -92,8 +93,8 @@ def set_status(db_path, status_code: int):
""" """
更新数据库中 livetlking_enable_status 的状态值 更新数据库中 livetlking_enable_status 的状态值
0 未启动前端写入 0 未启动前端写入
1 启动成功 1 启动
2 启动 2 启动成功
3 启动失败 3 启动失败
""" """
conn = sqlite3.connect(db_path, check_same_thread=False) conn = sqlite3.connect(db_path, check_same_thread=False)
@ -125,6 +126,16 @@ def update_sessionid_in_db(sessionid):
if conn: if conn:
conn.close() 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: def build_nerfreal(sessionid: int) -> BaseReal:
opt.sessionid = sessionid opt.sessionid = sessionid
@ -522,6 +533,15 @@ if __name__ == '__main__':
for route in list(appasync.router.routes()): for route in list(appasync.router.routes()):
cors.add(route) 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' pagename = 'webrtcapi.html'
if opt.transport == 'rtmp': if opt.transport == 'rtmp':
pagename = 'echoapi.html' pagename = 'echoapi.html'

Loading…
Cancel
Save