首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道在aiortc中浏览器对等点何时断开连接?

如何知道在aiortc中浏览器对等点何时断开连接?
EN

Stack Overflow用户
提问于 2021-02-27 16:21:49
回答 1查看 560关注 0票数 0
代码语言:javascript
复制
from aiortc import RTCPeerConnection

pc = RTCPeerConnection()
print(pc.connectionState)

错误:

代码语言:javascript
复制
C:\Users\Χρήστος\Desktop>python 123.py
Traceback (most recent call last):
  File "123.py", line 4, in <module>
    print(pc.connectionState)
AttributeError: 'RTCPeerConnection' object has no attribute 'connectionState'

它是aiortc文件中的第一个属性,但我无法检索它。

注意:我也尝试过使用connectionstatechange事件,但这两种方法都有效。

编辑:--这是pc对象具有的方法:

代码语言:javascript
复制
['_RTCPeerConnection__assertNotClosed', '_RTCPeerConnection__assertTrackHasNoSender', '_RTCPeerConnection__connect', '_RTCPeerConnection__createDtlsTransport', '_RTCPeerConnection__createSctpTransport', '_RTCPeerConnection__createTransceiver', '_RTCPeerConnection__gather', '_RTCPeerConnection__getTransceiverByMLineIndex', '_RTCPeerConnection__getTransceiverByMid', '_RTCPeerConnection__localDescription', '_RTCPeerConnection__localRtp', '_RTCPeerConnection__remoteDescription', '_RTCPeerConnection__remoteRtp', '_RTCPeerConnection__setSignalingState', '_RTCPeerConnection__updateIceConnectionState', '_RTCPeerConnection__updateIceGatheringState', '_RTCPeerConnection__validate_description', '__class__', '__delattr__', '__dir__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '_add_event_handler', '_call_handlers', '_emit_handle_potential_error', '_emit_run', 'addIceCandidate', 'addTrack', 'addTransceiver', 'close', 'createAnswer', 'createDataChannel', 'createOffer', 'emit', 'getReceivers', 'getSenders', 'getStats', 'getTransceivers', 'listeners', 'on', 'once', 'remove_all_listeners', 'remove_listener', 'setLocalDescription', 'setRemoteDescription']
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-27 16:26:24

aiortc使用pyee实现aiortc事件驱动,正如您在正式的GitHub示例(摄像头/webcam.py)中看到的那样,您必须将事件侦听器放在名为iceconnectionstatechange的事件上。

签出下面的代码片段:

代码语言:javascript
复制
from aiortc import RTCPeerConnection


pc = RTCPeerConnection()


@pc.on("iceconnectionstatechange")
async def on_iceconnectionstatechange():
    print(f"ICE connection state is {pc.iceConnectionState}")

    if pc.iceConnectionState == "failed":
        # Do something

在您的问题中,您提到您尝试过connectionstatechange事件,但实际上它是iceconnectionstatechange事件,这就是为什么它第一次不能工作的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66400853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档