内容表

上一话题

QMaskGenerator

下一话题

QWebSocketCorsAuthenticator

QWebSocket

实现 TCP 套接字交谈 WebSocket 协议。 更多

Inheritance diagram of PySide2.QtWebSockets.QWebSocket

概要

  • def close ([closeCode=QWebSocketProtocol.CloseCodeNormal[, reason=””]])

  • def open (request)

  • def open (url)

  • def ping ([payload=QByteArray()])

信号

详细描述

WebSockets 是通过单 TCP 连接提供全双工通信通道的 Web 技术。 WebSocket 协议由 IETF 标准化为 RFC 6455 in 2011. QWebSocket can both be used in a client application and server application.

此类被建模后于 QAbstractSocket .

QWebSocket currently does not support WebSocket 扩展 and WebSocket 子协议 .

QWebSocket only supports version 13 of the WebSocket 协议, 描述于 RFC 6455 .

注意

有些代理不理解某些 HTTP 所用 Header 头在 WebSocket 握手期间。在此情况下,不安全 WebSocket 连接将失败。缓解此问题的最佳方式是使用 WebSocket 通过安全连接。

警告

要生成屏蔽,此实现的 WebSockets 使用相当安全的 global() ->generate() function. For more information about the importance of good masking, see “Talking to Yourself for Fun and Profit” by Lin-Shung Huang et al . The best measure against attacks mentioned in the document above, is to use QWebSocket 通过安全连接 ( wss:// )。通常,始终小心不要让第 3 方脚本访问 QWebSocket 在您的应用程序中。

另请参阅

QAbstractSocket QTcpSocket QWebSocket 客户端范例

class QWebSocket ( [ origin="" [ , version=QWebSocketProtocol.VersionLatest [ , parent=None ] ] ] )
param parent

QObject

param origin

unicode

param version

版本

创建新 QWebSocket 采用给定 origin version 要使用的协议和 parent .

origin 客户端作为指定在 RFC 6454 。( origin 不需要对于非 Web 浏览器客户端 (见 RFC 6455 ))。 origin 不能包含换行符,否则在握手阶段将立即中止连接。

注意

目前仅 V13 ( RFC 6455 ) 被支持

PySide2.QtWebSockets.QWebSocket. abort ( )

中止当前套接字并重置套接字。不像 close() , this function immediately closes the socket, discarding any pending data in the write buffer.

PySide2.QtWebSockets.QWebSocket. aboutToClose ( )
PySide2.QtWebSockets.QWebSocket. binaryFrameReceived ( frame , isLastFrame )
参数
  • frame QByteArray

  • isLastFrame bool

PySide2.QtWebSockets.QWebSocket. binaryMessageReceived ( message )
参数

message QByteArray

PySide2.QtWebSockets.QWebSocket. bytesToWrite ( )
返回类型

qint64

返回等待写入的字节数。写入字节当控制回到事件循环或当 flush() 被调用。

另请参阅

flush

PySide2.QtWebSockets.QWebSocket. bytesWritten ( bytes )
参数

bytes qint64

PySide2.QtWebSockets.QWebSocket. close ( [ closeCode=QWebSocketProtocol.CloseCodeNormal [ , reason="" ] ] )
参数
  • closeCode CloseCode

  • reason – unicode

优雅地关闭套接字采用给定 closeCode and reason .

刷新写入缓冲中的任何数据在套接字被关闭之前。 closeCode CloseCode 指示关闭的原因,和 reason 更详细描述关闭的原因。所有控制帧,包括关闭帧,被限制为 125 字节。由于其中 2 字节已被用于 closeCode 最大长度的 reason 是 123!若 reason 超过此限制,它将被截取。

PySide2.QtWebSockets.QWebSocket. closeCode ( )
返回类型

CloseCode

返回套接字为什么被关闭的指示代码。

另请参阅

CloseCode closeReason()

PySide2.QtWebSockets.QWebSocket. closeReason ( )
返回类型

unicode

返回套接字为什么被关闭的原因。

另请参阅

closeCode()

PySide2.QtWebSockets.QWebSocket. connected ( )
PySide2.QtWebSockets.QWebSocket. disconnected ( )
PySide2.QtWebSockets.QWebSocket. error ( )
返回类型

SocketError

返回最后发生的错误类型

另请参阅

errorString()

PySide2.QtWebSockets.QWebSocket. error ( error )
参数

error SocketError

PySide2.QtWebSockets.QWebSocket. errorString ( )
返回类型

unicode

返回人类可读的最后发生的错误的描述

另请参阅

error()

PySide2.QtWebSockets.QWebSocket. flush ( )
返回类型

bool

此函数不阻塞尽可能多地把内部缓冲写入到底层网络套接字。若有写入任何数据,此函数返回 true; 否则返回 false。调用此函数若需要 QWebSocket 立即开始发送缓冲数据。成功写入的字节数从属操作系统。在大多数情况下,不需调用此函数,因为 QWebSocket 将开始自动发送数据,一旦控制回到事件循环。

PySide2.QtWebSockets.QWebSocket. isValid ( )
返回类型

bool

返回 true 若套接字已读写就绪;否则返回 false .

PySide2.QtWebSockets.QWebSocket. localAddress ( )
返回类型

QHostAddress

返回本地地址

PySide2.QtWebSockets.QWebSocket. localPort ( )
返回类型

quint16

返回本地端口

PySide2.QtWebSockets.QWebSocket. maskGenerator ( )
返回类型

QMaskGenerator

返回目前使用的掩码生成器通过此 QWebSocket .

PySide2.QtWebSockets.QWebSocket. maxAllowedIncomingFrameSize ( )
返回类型

quint64

返回传入 WebSocket 帧的最大允许尺寸。

PySide2.QtWebSockets.QWebSocket. maxAllowedIncomingMessageSize ( )
返回类型

quint64

返回传入 WebSocket 消息的最大允许尺寸。

static PySide2.QtWebSockets.QWebSocket. maxIncomingFrameSize ( )
返回类型

quint64

返回此 WebSocket 实现支持传入的 WebSocket 帧的最大尺寸。

static PySide2.QtWebSockets.QWebSocket. maxIncomingMessageSize ( )
返回类型

quint64

返回此 WebSocket 实现支持传入的 WebSocket 消息的最大尺寸。

static PySide2.QtWebSockets.QWebSocket. maxOutgoingFrameSize ( )
返回类型

quint64

返回此 WebSocket 实现支持传出的 WebSocket 帧的最大尺寸。

PySide2.QtWebSockets.QWebSocket. open ( request )
参数

request QNetworkRequest

PySide2.QtWebSockets.QWebSocket. open ( url )
参数

url QUrl

PySide2.QtWebSockets.QWebSocket. origin ( )
返回类型

unicode

返回当前来源。

PySide2.QtWebSockets.QWebSocket. outgoingFrameSize ( )
返回类型

quint64

返回传出 WebSocket 帧的最大尺寸。

PySide2.QtWebSockets.QWebSocket. pauseMode ( )
返回类型

PauseModes

返回此套接字的暂停模式

另请参阅

setPauseMode()

PySide2.QtWebSockets.QWebSocket. peerAddress ( )
返回类型

QHostAddress

返回对等方地址

PySide2.QtWebSockets.QWebSocket. peerName ( )
返回类型

unicode

返回

PySide2.QtWebSockets.QWebSocket. peerPort ( )
返回类型

quint16

返回对等方端口

PySide2.QtWebSockets.QWebSocket. ping ( [ payload=QByteArray() ] )
参数

payload QByteArray

Ping (乒) 服务器能指示连接仍活着。额外 payload 可以与 Ping 消息一道被发送。

The size of the payload cannot be bigger than 125. If it is larger, the payload 被裁剪到 125 字节。

另请参阅

pong()

PySide2.QtWebSockets.QWebSocket. pong ( elapsedTime , payload )
参数
  • elapsedTime quint64

  • payload QByteArray

PySide2.QtWebSockets.QWebSocket. preSharedKeyAuthenticationRequired ( authenticator )
参数

authenticator QSslPreSharedKeyAuthenticator

PySide2.QtWebSockets.QWebSocket. proxy ( )
返回类型

QNetworkProxy

返回目前配置代理

另请参阅

setProxy()

PySide2.QtWebSockets.QWebSocket. proxyAuthenticationRequired ( proxy , pAuthenticator )
参数
  • proxy QNetworkProxy

  • pAuthenticator QAuthenticator

PySide2.QtWebSockets.QWebSocket. readBufferSize ( )
返回类型

qint64

返回用于套接字的读取缓冲大小 (以字节为单位)。

PySide2.QtWebSockets.QWebSocket. readChannelFinished ( )
PySide2.QtWebSockets.QWebSocket. request ( )
返回类型

QNetworkRequest

返回过去 (或将来) 用于打开此套接字的请求。

PySide2.QtWebSockets.QWebSocket. requestUrl ( )
返回类型

QUrl

返回套接字已连接或将要连接的 URL。

PySide2.QtWebSockets.QWebSocket. resourceName ( )
返回类型

unicode

返回目前访问的资源的名称。

PySide2.QtWebSockets.QWebSocket. resume ( )

继续在套接字中传输数据。才应该使用此方法仅在套接字被设为当通知时暂停且有收到通知之后。目前唯一支持的通知是 sslErrors() . Calling this method if the socket is not paused results in undefined behavior.

PySide2.QtWebSockets.QWebSocket. sendBinaryMessage ( data )
参数

data QByteArray

返回类型

qint64

发送给定 data 通过套接字以二进制消息形式,并返回实际发送的字节数。

另请参阅

sendTextMessage()

PySide2.QtWebSockets.QWebSocket. sendTextMessage ( message )
参数

message – unicode

返回类型

qint64

发送给定 message 通过套接字以文本消息形式,并返回实际发送的字节数。

PySide2.QtWebSockets.QWebSocket. setMaskGenerator ( maskGenerator )
参数

maskGenerator QMaskGenerator

把用于创建掩码的生成器设为 maskGenerator 。默认 QWebSocket 生成器可以被重置通过提供 nullptr 。可以随时改变掩码生成器即使连接是打开的。

另请参阅

maskGenerator()

PySide2.QtWebSockets.QWebSocket. setMaxAllowedIncomingFrameSize ( maxAllowedIncomingFrameSize )
参数

maxAllowedIncomingFrameSize quint64

将传入 WebSocket 帧的最大允许尺寸设为 maxAllowedIncomingFrameSize 。若传入帧超过此限制,对等方将断开连接。接受范围介于 0 到 maxIncomingFrameSize() , default is maxIncomingFrameSize() . The purpose of this function is to avoid exhausting virtual memory.

PySide2.QtWebSockets.QWebSocket. setMaxAllowedIncomingMessageSize ( maxAllowedIncomingMessageSize )
参数

maxAllowedIncomingMessageSize quint64

把传入 WebSocket 消息的最大允许尺寸设为 maxAllowedIncomingMessageSize 。若传入消息超过此限制,对等方将断开连接。接受范围介于 0 到 maxIncomingMessageSize() , default is maxIncomingMessageSize() . The purpose of this function is to avoid exhausting virtual memory.

PySide2.QtWebSockets.QWebSocket. setOutgoingFrameSize ( outgoingFrameSize )
参数

outgoingFrameSize quint64

把传出 WebSocket 帧的最大尺寸设为 outgoingFrameSize 。接受范围介于 0 到 maxOutgoingFrameSize() , default is 512kB. The purpose of this function is to adapt to the maximum allowed frame size of the receiver.

PySide2.QtWebSockets.QWebSocket. setPauseMode ( pauseMode )
参数

pauseMode PauseModes

控制当收到通知时是否暂停。 pauseMode 参数指定套接字应该被暂停的条件。

目前唯一支持的通知是 sslErrors() . If set to PauseOnSslErrors, data transfer on the socket will be paused and needs to be enabled explicitly again by calling resume() . By default, this option is set to PauseNever. This option must be called before connecting to the server, otherwise it will result in undefined behavior.

PySide2.QtWebSockets.QWebSocket. setProxy ( networkProxy )
参数

networkProxy QNetworkProxy

把代理设为 networkProxy

另请参阅

proxy()

PySide2.QtWebSockets.QWebSocket. setReadBufferSize ( size )
参数

size qint64

设置尺寸为 QWebSocket ‘s internal read buffer to be size 字节。

若缓冲尺寸被限制到某个大小, QWebSocket won’t buffer more than this size of data. Exceptionally, a buffer size of 0 means that the read buffer is unlimited and all incoming data is buffered. This is the default. This option is useful if you only read the data at certain points in time (for example, in a real-time streaming application) or if you want to protect your socket against receiving too much data, which may eventually cause your application to run out of memory.

另请参阅

readBufferSize()

PySide2.QtWebSockets.QWebSocket. state ( )
返回类型

SocketState

返回套接字的当前状态。

PySide2.QtWebSockets.QWebSocket. stateChanged ( state )
参数

state SocketState

PySide2.QtWebSockets.QWebSocket. textFrameReceived ( frame , isLastFrame )
参数
  • frame – unicode

  • isLastFrame bool

PySide2.QtWebSockets.QWebSocket. textMessageReceived ( message )
参数

message – unicode

PySide2.QtWebSockets.QWebSocket. version ( )
返回类型

版本

返回目前正在使用的套接字版本。