本文整理汇总了Python中websocket.ABNF.OPCODE_TEXT属性的典型用法代码示例。如果您正苦于以下问题:Python ABNF.OPCODE_TEXT属性的具体用法?Python ABNF.OPCODE_TEXT怎么用?Python ABNF.OPCODE_TEXT使用的例子?那么恭喜您, 这里精选的属性代码示例或许可以为您提供帮助。您也可以进一步了解该属性所在类websocket.ABNF
的用法示例。
在下文中一共展示了ABNF.OPCODE_TEXT属性的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: recv
# 需要导入模块: from websocket import ABNF [as 别名]
# 或者: from websocket.ABNF import OPCODE_TEXT [as 别名]
def recv(self):
if self._ws_client is None:
raise WebsocketNotConnectedException()
opcode, data = None, None
while opcode != ABNF.OPCODE_TEXT:
opcode, data = self._ws_client.recv_data()
return data.decode("utf-8") if PY3 else data
示例2: write_channel
# 需要导入模块: from websocket import ABNF [as 别名]
# 或者: from websocket.ABNF import OPCODE_TEXT [as 别名]
def write_channel(self, channel, data):
"""Write data to a channel."""
# check if we're writing binary data or not
binary = six.PY3 and type(data) == six.binary_type
opcode = ABNF.OPCODE_BINARY if binary else ABNF.OPCODE_TEXT
channel_prefix = chr(channel)
if binary:
channel_prefix = six.binary_type(channel_prefix, "ascii")
payload = channel_prefix + data
self.sock.send(payload, opcode=opcode)
示例3: update
# 需要导入模块: from websocket import ABNF [as 别名]
# 或者: from websocket.ABNF import OPCODE_TEXT [as 别名]
def update(self, timeout=0):
"""Update channel buffers with at most one complete frame of input."""
if not self.is_open():
return
if not self.sock.connected:
self._connected = False
return
r, _, _ = select.select(
(self.sock.sock, ), (), (), timeout)
if r:
op_code, frame = self.sock.recv_data_frame(True)
if op_code == ABNF.OPCODE_CLOSE:
self._connected = False
return
elif op_code == ABNF.OPCODE_BINARY or op_code == ABNF.OPCODE_TEXT:
data = frame.data
if six.PY3:
data = data.decode("utf-8", "replace")
if len(data) > 1:
channel = ord(data[0])
data = data[1:]
if data:
if channel in [STDOUT_CHANNEL, STDERR_CHANNEL]:
# keeping all messages in the order they received
# for non-blocking call.
self._all.write(data)
if channel not in self._channels:
self._channels[channel] = data
else:
self._channels[channel] += data
示例4: recv_data
# 需要导入模块: from websocket import ABNF [as 别名]
# 或者: from websocket.ABNF import OPCODE_TEXT [as 别名]
def recv_data(self, control_frame=False):
if self.returndata:
return ABNF.OPCODE_TEXT, self.returndata.pop(0)
else:
raise ssl.SSLWantReadError()
示例5: update
# 需要导入模块: from websocket import ABNF [as 别名]
# 或者: from websocket.ABNF import OPCODE_TEXT [as 别名]
def update(self, timeout=0):
"""Update channel buffers with at most one complete frame of input."""
if not self.is_open():
return
if not self.sock.connected:
self._connected = False
return
r, _, _ = select.select(
(self.sock.sock, ), (), (), timeout)
if r:
op_code, frame = self.sock.recv_data_frame(True)
if op_code == ABNF.OPCODE_CLOSE:
self._connected = False
return
elif op_code == ABNF.OPCODE_BINARY or op_code == ABNF.OPCODE_TEXT:
data = frame.data
if six.PY3:
data = data.decode("utf-8")
if len(data) > 1:
channel = ord(data[0])
data = data[1:]
if data:
if channel in [STDOUT_CHANNEL, STDERR_CHANNEL]:
# keeping all messages in the order they received for
# non-blocking call.
self._all += data
if channel not in self._channels:
self._channels[channel] = data
else:
self._channels[channel] += data