mirror of
https://github.com/xfgryujk/blivedm.git
synced 2025-03-12 18:50:34 +08:00
添加取消SSL验证
This commit is contained in:
parent
102674fcad
commit
11bacf8d43
@ -5,6 +5,8 @@ import struct
|
|||||||
from asyncio import gather, sleep, CancelledError
|
from asyncio import gather, sleep, CancelledError
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
from enum import IntEnum
|
from enum import IntEnum
|
||||||
|
# noinspection PyProtectedMember
|
||||||
|
from ssl import _create_unverified_context
|
||||||
|
|
||||||
import requests
|
import requests
|
||||||
import websockets
|
import websockets
|
||||||
@ -26,13 +28,15 @@ class BLiveClient:
|
|||||||
HEADER_STRUCT = struct.Struct('>I2H2I')
|
HEADER_STRUCT = struct.Struct('>I2H2I')
|
||||||
HeaderTuple = namedtuple('HeaderTuple', ('total_len', 'header_len', 'proto_ver', 'operation', 'sequence'))
|
HeaderTuple = namedtuple('HeaderTuple', ('total_len', 'header_len', 'proto_ver', 'operation', 'sequence'))
|
||||||
|
|
||||||
def __init__(self, room_id, loop=None):
|
def __init__(self, room_id, ssl=True, loop=None):
|
||||||
"""
|
"""
|
||||||
:param room_id: URL中的房间ID
|
:param room_id: URL中的房间ID
|
||||||
|
:param ssl: True表示用默认的SSLContext验证,False表示不验证,也可以传入SSLContext
|
||||||
:param loop: 协程事件循环
|
:param loop: 协程事件循环
|
||||||
"""
|
"""
|
||||||
self._short_id = room_id
|
self._short_id = room_id
|
||||||
self._room_id = None
|
self._room_id = None
|
||||||
|
self._ssl = ssl if ssl else _create_unverified_context()
|
||||||
self._websocket = None
|
self._websocket = None
|
||||||
# 未登录
|
# 未登录
|
||||||
self._uid = 0
|
self._uid = 0
|
||||||
@ -96,7 +100,7 @@ class BLiveClient:
|
|||||||
while True:
|
while True:
|
||||||
try:
|
try:
|
||||||
# 连接
|
# 连接
|
||||||
async with websockets.connect(self.WEBSOCKET_URL) as websocket:
|
async with websockets.connect(self.WEBSOCKET_URL, ssl=self._ssl, loop=self._loop) as websocket:
|
||||||
self._websocket = websocket
|
self._websocket = websocket
|
||||||
await self._send_auth()
|
await self._send_auth()
|
||||||
|
|
||||||
|
10
sample.py
10
sample.py
@ -17,9 +17,15 @@ class MyBLiveClient(BLiveClient):
|
|||||||
def main():
|
def main():
|
||||||
loop = get_event_loop()
|
loop = get_event_loop()
|
||||||
|
|
||||||
client = MyBLiveClient(6, loop)
|
# 如果SSL验证失败或连接卡死就把第二个参数设为False
|
||||||
|
client = MyBLiveClient(139, True, loop)
|
||||||
client.start()
|
client.start()
|
||||||
loop.call_later(5, client.stop, loop.stop)
|
|
||||||
|
# 5秒后停止,测试用
|
||||||
|
# loop.call_later(5, client.stop, loop.stop)
|
||||||
|
# 按Ctrl+C停止
|
||||||
|
# import signal
|
||||||
|
# signal.signal(signal.SIGINT, lambda signum, frame: client.stop(loop.stop))
|
||||||
|
|
||||||
try:
|
try:
|
||||||
loop.run_forever()
|
loop.run_forever()
|
||||||
|
Loading…
Reference in New Issue
Block a user