admin
2025-06-04 287c506725b2d970f721f80169f83c2418cb0991
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
B
©ÍÕdq ã@s"ddlZddlZGdd„dƒZdS)éNc@sdeZdZdZiZiZiZedd„ƒZedd„ƒZ    edd„ƒZ
edd    „ƒZ ed
d „ƒZ ed d „ƒZ dS)ÚClientSocketManagerÚtradecCsb||jkrB||jkrg|j|<|j| ||f¡t ¡|j|<n||f|j|<t ¡|j|<dS)N)ÚCLIENT_TYPE_TRADEÚsocket_client_dictÚappendÚ    threadingÚLockÚsocket_client_lock_dict)ÚclsÚ_typeÚridÚsk©rú2D:\workspace\GP\gp_middle_server\socket_manager.pyÚ
add_client s
 
 
zClientSocketManager.add_clientc    sà|ˆjkr„|ˆjkrÜtˆj|‡fdd„dd}xª|D]H}|dˆjkr6yˆj|djddrd|SWq6tjk
r|Yq6Xq6WnX|ˆjkrÜy6ˆj|}|dˆjkrˆj|djddrÂ|SWntjk
rÚYnXdS)Ncs"|dˆjkrˆj |d¡SdS)Nr)Úactive_client_dictÚget)Úx)r
rrÚ<lambda>óz4ClientSocketManager.acquire_client.<locals>.<lambda>T)ÚkeyÚreverserF)Úblocking)rrÚsortedr    ÚacquirerÚ TimeoutError)r
r Z client_listÚdr)r
rÚacquire_clients(
 
 
 
 
z"ClientSocketManager.acquire_clientcCs||jkr|j| ¡dS)N)r    Úrelease)r
r rrrÚrelease_client2s
z"ClientSocketManager.release_clientcCs¢||jkr|j |¡x†|jD]|}t|j|ƒtkrhxd|j|D]"}|d|kr@|j| |¡Pq@Wqt|j|ƒtkr|j|d|kr|j |¡PqWdS)Nr)r    ÚpoprÚtypeÚlistÚremoveÚtuple)r
r ÚtrrrrÚ
del_client8s
    zClientSocketManager.del_clientcCst ¡|j|<dS)N)Útimer)r
r rrrÚheartKszClientSocketManager.heartcCs8x2|j ¡D]$}t ¡|j|dkr | |¡q WdS)Né)rÚkeysr'r&)r
ÚkrrrÚdel_invalid_clientsOsz'ClientSocketManager.del_invalid_clientsN)Ú__name__Ú
__module__Ú __qualname__rrr    rÚ classmethodrrrr&r(r,rrrrrs    r)rr'rrrrrÚ<module>s