Files
assist/src/web/__pycache__/websocket_server.cpython-310.pyc

82 lines
8.1 KiB
Plaintext
Raw Normal View History

o
<00><>5i$+<00>@s<>dZddlZddlZddlZddlmZddlmZmZddlZddl m
Z
ddl m Z e<03> e<0E>ZGdd <09>d <09>Zed
krLejejd <0B>e<10>Ze<13><14>dSdS) u9
WebSocket实时通信服务器
提供实时对话功能
<EFBFBD>N)<01>datetime)<02>Dict<63>Set)<01>WebSocketServerProtocol<6F>)<01>RealtimeChatManagerc@s$eZdZdZd+dedefdd<07>Zdefd d
<EFBFBD>Zdefd d <0C>Z ded efdd<0F>Z
d,dede defdd<14>Z d,dede defdd<16>Z d,dede defdd<18>Zd,dede defdd<1A>Zd,dede defdd<1C>Zd,dede defdd<1E>Zd,dededefd d!<21>Zded"efd#d$<24>Zd%d&<26>Zd'd(<28>Zd)d*<2A>ZdS)-<2D>WebSocketServeruWebSocket服务器<E58AA1> localhost<73>="<00>host<73>portcCs ||_||_t<02>|_t<04>|_dS<00>N)r r r<00> chat_manager<65>set<65>connected_clients)<03>selfr r <00>r<00>(/root/assist/src/web/websocket_server.py<70>__init__s zWebSocketServer.__init__<5F> websocketc<00><00>$<00>|j<00>|<01>t<02>d|j<04><00><02>dS)u注册客户端u客户端连接: N)r<00>add<64>logger<65>info<66>remote_address<73>rrrrr<00>register_client<00><02> zWebSocketServer.register_clientc<00>r)u注销客户端u客户端断开: N)r<00>discardrrrrrrr<00>unregister_client!rz!WebSocketServer.unregister_client<6E>messagec
<00>s<><00>z<>t<00>|<02>}|<03>d<01>}|<03>d<02>}|dkr"|<00>|||<05>IdHWdS|dkr3|<00>|||<05>IdHWdS|dkrD|<00>|||<05>IdHWdS|dkrU|<00>|||<05>IdHWdS|dkrf|<00>|||<05>IdHWdS|d krw|<00>|||<05>IdHWdS|<00> |d
|<05>IdHWdStj
y<EFBFBD>|<00> |d <0B>IdHYdSt y<>}zt <0C> d |<06><00><02>|<00> |d t|<06><01><00><02>IdHWYd}~dSd}~ww) u处理客户端消息<E6B688>type<70> messageId<49>create_sessionN<6E> send_message<67> get_history<72>create_work_order<65>get_work_order_status<75> end_sessionu未知消息类型uJSON格式错误u处理消息失败: )<0F>json<6F>loads<64>get<65>_handle_create_session<6F>_handle_send_message<67>_handle_get_history<72>_handle_create_work_order<65>_handle_get_work_order_status<75>_handle_end_session<6F> _send_error<6F>JSONDecodeError<6F> Exceptionr<00>error<6F>str)rrr <00>data<74> message_type<70>
message_id<EFBFBD>errr<00>handle_message&s2<02>


*<08><02>zWebSocketServer.handle_messageNr7r9c<00>sd<00>|<02>dd<02>}|<02>d<03>}|j<01>||<05>}d|t<03><04><00><05>d<05>}|r#||d<|<01>tj|dd<08><02>Id Hd S)
u处理创建会话请求<E8AFB7>user_id<69> anonymous<75> work_order_id<69>session_created)r!<00>
session_id<EFBFBD> timestampr"F<><01> ensure_asciiN) r+rr#r<00>now<6F> isoformat<61>sendr)<00>dumps)rrr7r9r<r>r@<00>responserrrr,Bs<02> 

<06>z&WebSocketServer._handle_create_sessionc<00>s<><00>|<02>d<01>}|<02>d<02>}|r|s|<00>|d|<03>IdHdS|j<02>||<05>}d||t<04><05><00><06>d<06>}|r3||d<|<01>tj |dd <09><02>IdHdS)
u处理发送消息请求r@r <00>缺少必要参数N<E695B0>message_response<73>r!r@<00>resultrAr"FrB)
r+r2r<00>process_messagerrDrErFr)rG)rrr7r9r@r rLrHrrrr-Ts<02>


<06>z$WebSocketServer._handle_send_messagec<00><00>t<00>|<02>d<01>}|s|<00>|d|<03>IdHdS|j<02>|<04>}d||t<04><05><00><06>d<05>}|r+||d<|<01>tj |dd<08><02>IdHdS) u处理获取历史记录请求r@<00>缺少会话IDN<44>history_response)r!r@<00>historyrAr"FrB)
r+r2r<00>get_session_historyrrDrErFr)rG)rrr7r9r@rQrHrrrr.l<00><02>
 
<06>z#WebSocketServer._handle_get_historyc <00>s<><00>|<02>d<01>}|<02>d<02>}|<02>d<03>}|<02>dd<05>}|<02>dd<07>}|r"|r"|s.|<00>|d|<03>Id Hd S|j<02>|||||<08>} d
|| t<04><05><00><06>d <0B>}
|rI||
d <|<01>tj |
d d<0E><02>Id Hd S)u处理创建工单请求r@<00>title<6C> description<6F>categoryu 技术问题<E997AE>priority<74>mediumrIN<>work_order_createdrKr"FrB)
r+r2rr&rrDrErFr)rG) rrr7r9r@rTrUrVrWrLrHrrrr/<00>s$<02>


   
<06>z)WebSocketServer._handle_create_work_orderc<00>rN) u处理获取工单状态请求r>u缺少工单IDN<44>work_order_status)r!r>rLrAr"FrB)
r+r2rr'rrDrErFr)rG)rrr7r9r>rLrHrrrr0<00>rSz-WebSocketServer._handle_get_work_order_statusc<00>rN) u处理结束会话请求r@rON<> session_ended)r!r@<00>successrAr"FrB)
r+r2rr(rrDrErFr)rG)rrr7r9r@r\rHrrrr1<00>rSz#WebSocketServer._handle_end_session<6F> error_messagec<00>s@<00>d|t<00><01><00><02>d<02>}|r||d<|<01>tj|dd<05><02>IdHdS)u发送错误消息r5)r!r rAr"FrBN)rrDrErFr)rG)rrr]r9rHrrrr2<00>s<02>
<06>zWebSocketServer._send_error<6F>pathc
<00>sD<00>|j}|<03>dd<02><02><02>}d|vrd|vrt<03>d|<04><00><02>nd|vr5t<03>d|<04><00><02>|jddd <09>Id
Hd
S|<00>|<01>Id
Hz[z|2z3d
HW}|<00>||<05>Id
HqA6Wn$tj j
y^Yn%t yw}zt<03> d |<06><00><02>WYd
}~nd
}~wwW|<00> |<01>Id
Hd
SW|<00> |<01>Id
Hd
SW|<00> |<01>Id
Hd
S|<00> |<01>Id
Hw) u处理客户端连接<E8BF9E>
Connection<EFBFBD><00>upgradez
keep-aliveu收到非标准连接头: u连接头不包含upgrade: i<>zInvalid connection header)<02>code<64>reasonNuWebSocket连接错误: )<0E>request_headersr+<00>lowerr<00>warning<6E>closerr;<00>
websockets<EFBFBD>
exceptions<EFBFBD>ConnectionClosedr4r5r)rrr^<00>headers<72>
connectionr r:rrr<00> handle_client<6E>s4<02><06><08><02><02><02><02>&zWebSocketServer.handle_clientc <00>s<><00>t<00>d<01>j<02>d<02>j<03><00><04>dtf<02>fdd<05> }tj|<01>j<02>j<03>jd<06>4IdH<00>t<08> <09>IdHWd<00>IdHdS1IdHs@wYdS)u启动WebSocket服务器u启动WebSocket服务器: ws://<2F>:rc<00>s,<00>|j}|j<01>d<01>r <00><00>||<01>IdHdS)N<>Origin)r^rdr+rm)rr^<00>rrr<00>handle_client_with_cors<72>s
<02> z=WebSocketServer.start_server.<locals>.handle_client_with_cors)<01>process_requestN)
rrr r rrh<00>serve<76>_process_request<73>asyncio<69>Future)rrqrrpr<00> start_server<65>s<02> <10>.<2E>zWebSocketServer.start_servercCsVt|d<01>r|<02>dd<03><02><02>}nt|d<04>r|j<03>dd<03><02><02>}nd}|dkr%dSddgd fS)
u处理HTTP请求支持CORSr+<00>Upgrader`rkrN<><4E>)z Content-Typeztext/html; charset=utf-8s<38>
<!DOCTYPE html>
<html>
<head>
<title>WebSocket Server</title>
</head>
<body>
<h1>WebSocket Server is running</h1>
<p>This is a WebSocket server. Please use a WebSocket client to connect.</p>
<p>WebSocket URL: ws://localhost:8765</p>
</body>
</html>
)<04>hasattrr+rerk)rr^rd<00>upgrade_headerrrrrts

<04>z WebSocketServer._process_requestcCst<00>|<00><02><00>dS)u运行服务器N)ru<00>runrwrprrrr|(szWebSocketServer.run)r r
r )<17>__name__<5F>
__module__<EFBFBD> __qualname__<5F>__doc__r6<00>intrrrrr;rr,r-r.r/r0r1r2rmrwrtr|rrrrrs"  !r<00>__main__)<01>level)r<>rur)<00>loggingr<00>typingrrrh<00>websockets.serverr<00>dialogue.realtime_chatr<00> getLoggerr}rr<00> basicConfig<69>INFO<46>serverr|rrrr<00><module>s$   
 <04>