HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/lib/python3.10/site-packages/starlette/__pycache__/websockets.cpython-310.pyc
o

�h� �@s�ddlmZddlZddlZddlZddlmZddlmZddl	m
Z
mZmZm
Z
Gdd�dej�ZGdd	�d	e�ZGd
d�de�ZGdd
�d
�ZdS)�)�annotationsN)�HTTPConnection)�Response)�Message�Receive�Scope�Sendc@seZdZdZdZdZdZdS)�WebSocketStater���N)�__name__�
__module__�__qualname__�
CONNECTING�	CONNECTED�DISCONNECTED�RESPONSE�rr�G/usr/local/CyberCP/lib/python3.10/site-packages/starlette/websockets.pyr	s
r	c@seZdZddd	d
�ZdS)
�WebSocketDisconnect��N�code�int�reason�
str | None�return�NonecC�||_|pd|_dS�N��rr��selfrrrrr�__init__�zWebSocketDisconnect.__init__�rN�rrrrrr)r
rrr$rrrrrsrcs�eZdZd?�fd	d
�Zd@dd
�ZdAdd�Z		dBdCdd�ZdAdd�ZdDdd�ZdEdd�Z	dFdGd#d$�Z
dHd&d'�ZdId)d*�ZdJd,d-�Z
dKd/d0�ZdLd1d2�ZdFdMd3d4�ZdNdOd9d:�ZdPd=d>�Z�ZS)Q�	WebSocket�scoper�receiver�sendrrrcs<t��|�|ddksJ�||_||_tj|_tj|_dS)N�type�	websocket)�superr$�_receive�_sendr	r�client_state�application_state�r#r)r*r+��	__class__rrr$szWebSocket.__init__rc�s��|jtjkr#|��IdH}|d}|dkrtd|����tj|_|S|jtjkrI|��IdH}|d}|dvr?td|����|dkrGtj|_|Std��)	zT
        Receive ASGI websocket messages, ensuring valid state transitions.
        Nr,zwebsocket.connectz3Expected ASGI message "websocket.connect", but got >�websocket.receive�websocket.disconnectzMExpected ASGI message "websocket.receive" or "websocket.disconnect", but got r7zBCannot call "receive" once a disconnect message has been received.)r1r	rr/�RuntimeErrorrr�r#�message�message_typerrrr*"s&��zWebSocket.receiver:c�s8�|jtjkr6|d}|dvrtd|����|dkrtj|_n
|dkr(tj|_ntj|_|�|�IdHdS|jtjkro|d}|dvrKtd|����|dkrStj|_z|�|�IdHWdStyntj|_t	d	d
��w|jtjkr�|d}|dkr�td|����|�
d
d�s�tj|_|�|�IdHdStd��)zQ
        Send ASGI websocket messages, ensuring valid state transitions.
        r,>�websocket.close�websocket.accept�websocket.http.response.startzhExpected ASGI message "websocket.accept", "websocket.close" or "websocket.http.response.start", but got r<r>N>�websocket.sendr<zEExpected ASGI message "websocket.send" or "websocket.close", but got i�)rzwebsocket.http.response.bodyz>Expected ASGI message "websocket.http.response.body", but got �	more_bodyFz6Cannot call "send" once a close message has been sent.)r2r	rr8rrrr0�OSErrorr�getr9rrrr+:sJ���

�
�zWebSocket.sendN�subprotocolr�headers�+typing.Iterable[tuple[bytes, bytes]] | Nonec�s@�|pg}|jtjkr|��IdH|�d||d��IdHdS)Nr=)r,rCrD)r1r	rr*r+)r#rCrDrrr�acceptcs
�zWebSocket.acceptcCs$|ddkrt|d|�d���dS)Nr,r7rr)rrB�r#r:rrr�_raise_on_disconnectos�zWebSocket._raise_on_disconnect�strc��>�|jtjkrtd��|��IdH}|�|�t�t|d�S)N�8WebSocket is not connected. Need to call "accept" first.�text)	r2r	rr8r*rH�typing�castrIrGrrr�receive_texts��
zWebSocket.receive_text�bytesc�rJ)NrKrQ)	r2r	rr8r*rHrMrNrQrGrrr�
receive_byteszrPzWebSocket.receive_bytesrL�mode�
typing.Anyc�sh�|dvr	td��|jtjkrtd��|��IdH}|�|�|dkr(|d}n|d�d�}t�|�S)N>rL�binary�1The "mode" argument should be "text" or "binary".rKrLrQ�utf-8)	r8r2r	rr*rH�decode�json�loads)r#rSr:rLrrr�receive_json�s�


zWebSocket.receive_json�typing.AsyncIterator[str]cC�,�z
	|��IdHVqtyYdSw�N)rOr�r#rrr�	iter_text�����zWebSocket.iter_text�typing.AsyncIterator[bytes]cCr]r^)rRrr_rrr�
iter_bytes�razWebSocket.iter_bytes� typing.AsyncIterator[typing.Any]cCr]r^)r[rr_rrr�	iter_json�razWebSocket.iter_json�datac���|�d|d��IdHdS)Nr?�r,rL�r+�r#rfrrr�	send_text���zWebSocket.send_textc�rg)Nr?�r,rQrirjrrr�
send_bytes�rlzWebSocket.send_bytesc�sd�|dvr	td��tj|ddd�}|dkr"|�d|d��IdHdS|�d|�d	�d
��IdHdS)N>rLrUrV)�,�:F)�
separators�ensure_asciirLr?rhrWrm)r8rY�dumpsr+�encode)r#rfrSrLrrr�	send_json�s� zWebSocket.send_jsonrrrrc�s"�|�d||pdd��IdHdS)Nr<r �r,rrrir"rrr�close�s� zWebSocket.close�responserc�s8�d|j�di�vr||j|j|j�IdHdStd��)Nzwebsocket.http.response�
extensionszCThe server doesn't support the Websocket Denial Response extension.)r)rBr*r+r8)r#rxrrr�send_denial_response�s�zWebSocket.send_denial_response�r)rr*rr+rrr)rr)r:rrr)NN)rCrrDrErr)rrI)rrQ)rL)rSrIrrT)rr\)rrb)rrd)rfrIrr)rfrQrr)rfrTrSrIrrr&r')rxrrr)r
rrr$r*r+rFrHrOrRr[r`rcrerkrnrurwrz�
__classcell__rrr4rr(s&

+�







	r(c@s"eZdZddd	d
�Zddd�ZdS)�WebSocketCloserNrrrrrrcCrrr!r"rrrr$�r%zWebSocketClose.__init__r)rr*rr+rc�s �|d|j|jd��IdHdS)Nr<rvr!r3rrr�__call__�s�zWebSocketClose.__call__r&r'r{)r
rrr$r~rrrrr}�sr})�
__future__r�enumrYrM�starlette.requestsr�starlette.responsesr�starlette.typesrrrr�Enumr	�	Exceptionrr(r}rrrr�<module>s%