fix: 修改了中心服务器接收心跳包函数;修改客户端变量类型id

This commit is contained in:
ccyj 2023-10-23 21:39:12 +08:00
parent 0ce7f79d5f
commit ba8bab8a17
2 changed files with 8 additions and 7 deletions

View File

@ -213,7 +213,7 @@ class IP_Message(BaseModel):
dest_ip: str dest_ip: str
message_name: str message_name: str
source_ip: str source_ip: str
pk: int pk: Tuple[int, int]
class Request_Message(BaseModel): class Request_Message(BaseModel):
@ -305,7 +305,7 @@ async def recieve_request(i_m: IP_Message):
message = b"hello world" + random.randbytes(8) message = b"hello world" + random.randbytes(8)
# send message to nodes # send message to nodes
await send_messages(node_ips, message, dest_ip, pk_B, threshold) # type: ignore await send_messages(tuple(node_ips), message, dest_ip, pk_B, threshold)
response = {"threshold": threshold, "public_key": own_public_key} response = {"threshold": threshold, "public_key": own_public_key}
return response return response

View File

@ -29,6 +29,7 @@ def init():
asyncio.create_task(receive_heartbeat_internal()) asyncio.create_task(receive_heartbeat_internal())
def clean_env(): def clean_env():
clear_database()
# 关闭游标和连接 # 关闭游标和连接
cursor.close() cursor.close()
conn.close() conn.close()
@ -86,14 +87,14 @@ async def delete_node(ip: str) -> None:
print(f"Node with IP {ip} not found.") print(f"Node with IP {ip} not found.")
# 接收节点心跳包 # 接收节点心跳包
@app.post("/server/heartbeat") @app.get("/server/heartbeat")
async def receive_heartbeat(ip: str): async def receive_heartbeat(ip: str):
cursor.execute("UPDATE nodes SET last_heartbeat = ? WHERE ip = ?", (time.time(), ip)) cursor.execute("UPDATE nodes SET last_heartbeat = ? WHERE ip = ?", (time.time(), ip))
return {"status": "received"} return {"status": "received"}
async def receive_heartbeat_internal(): async def receive_heartbeat_internal():
while 1: while 1:
timeout = 70 timeout = 7
# 删除超时的节点 # 删除超时的节点
# cursor.execute("DELETE FROM nodes WHERE last_heartbeat < ?", (time.time() - timeout,)) # cursor.execute("DELETE FROM nodes WHERE last_heartbeat < ?", (time.time() - timeout,))
# conn.commit() # conn.commit()
@ -120,12 +121,12 @@ async def send_nodes_list(count: int) -> list:
return nodes_list return nodes_list
@app.get("/server/clear_database") # @app.get("/server/clear_database")
async def clear_database() -> None: def clear_database() -> None:
cursor.execute("DELETE FROM nodes") cursor.execute("DELETE FROM nodes")
conn.commit() conn.commit()
if __name__ == "__main__": if __name__ == "__main__":
import uvicorn # pylint: disable=e0401 import uvicorn # pylint: disable=e0401
uvicorn.run("server:app", host="0.0.0.0", port=8000, reload=True) uvicorn.run("server:app", host="0.0.0.0", port=8000, reload=True)