实现 TCP 套接字交谈 WebSocket 协议。 更多 …
def
abort
()
def
bytesToWrite
()
def
closeCode
()
def
closeReason
()
def
error
()
def
errorString
()
def
flush
()
def
isValid
()
def
localAddress
()
def
localPort
()
def
maskGenerator
()
def
maxAllowedIncomingFrameSize
()
def
origin
()
def
outgoingFrameSize
()
def
pauseMode
()
def
peerAddress
()
def
peerName
()
def
peerPort
()
def
proxy
()
def
readBufferSize
()
def
request
()
def
requestUrl
()
def
resourceName
()
def
resume
()
def
sendBinaryMessage
(data)
def
sendTextMessage
(message)
def
setMaskGenerator
(maskGenerator)
def
setMaxAllowedIncomingFrameSize
(maxAllowedIncomingFrameSize)
def
setMaxAllowedIncomingMessageSize
(maxAllowedIncomingMessageSize)
def
setOutgoingFrameSize
(outgoingFrameSize)
def
setPauseMode
(pauseMode)
def
setProxy
(networkProxy)
def
setReadBufferSize
(size)
def
state
()
def
version
()
def
aboutToClose
()
def
binaryFrameReceived
(frame, isLastFrame)
def
binaryMessageReceived
(message)
def
bytesWritten
(bytes)
def
connected
()
def
disconnected
()
def
error
(error)
def
pong
(elapsedTime, payload)
def
preSharedKeyAuthenticationRequired
(authenticator)
def
proxyAuthenticationRequired
(proxy, pAuthenticator)
def
readChannelFinished
()
def
stateChanged
(state)
def
textFrameReceived
(frame, isLastFrame)
def
textMessageReceived
(message)
def
maxIncomingFrameSize
()
def
maxIncomingMessageSize
()
def
maxOutgoingFrameSize
()
WebSockets 是通过单 TCP 连接提供全双工通信通道的 Web 技术。 WebSocket 协议由 IETF 标准化为 RFC 6455 in 2011.
QWebSocketcan both be used in a client application and server application.此类被建模后于
QAbstractSocket.
QWebSocketcurrently does not support WebSocket 扩展 and WebSocket 子协议 .
QWebSocketonly 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 useQWebSocket通过安全连接 ( wss:// )。通常,始终小心不要让第 3 方脚本访问QWebSocket在您的应用程序中。另请参阅
QAbstractSocketQTcpSocketQWebSocket 客户端范例
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()
被调用。
另请参阅
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
返回套接字为什么被关闭的原因。
另请参阅
PySide2.QtWebSockets.QWebSocket.
connected
(
)
¶
PySide2.QtWebSockets.QWebSocket.
disconnected
(
)
¶
PySide2.QtWebSockets.QWebSocket.
error
(
)
¶
SocketError
返回最后发生的错误类型
另请参阅
PySide2.QtWebSockets.QWebSocket.
error
(
error
)
¶
error
–
SocketError
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
(
)
¶
返回目前使用的掩码生成器通过此
QWebSocket
.
另请参阅
PySide2.QtWebSockets.QWebSocket.
maxAllowedIncomingFrameSize
(
)
¶
quint64
返回传入 WebSocket 帧的最大允许尺寸。
PySide2.QtWebSockets.QWebSocket.
maxAllowedIncomingMessageSize
(
)
¶
quint64
返回传入 WebSocket 消息的最大允许尺寸。
PySide2.QtWebSockets.QWebSocket.
maxIncomingFrameSize
(
)
¶
quint64
返回此 WebSocket 实现支持传入的 WebSocket 帧的最大尺寸。
PySide2.QtWebSockets.QWebSocket.
maxIncomingMessageSize
(
)
¶
quint64
返回此 WebSocket 实现支持传入的 WebSocket 消息的最大尺寸。
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
返回此套接字的暂停模式
另请参阅
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 字节。
另请参阅
PySide2.QtWebSockets.QWebSocket.
pong
(
elapsedTime
,
payload
)
¶
elapsedTime
–
quint64
payload
–
QByteArray
authenticator
–
QSslPreSharedKeyAuthenticator
PySide2.QtWebSockets.QWebSocket.
proxy
(
)
¶
QNetworkProxy
返回目前配置代理
另请参阅
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
通过套接字以二进制消息形式,并返回实际发送的字节数。
另请参阅
PySide2.QtWebSockets.QWebSocket.
sendTextMessage
(
message
)
¶
message – unicode
qint64
发送给定
message
通过套接字以文本消息形式,并返回实际发送的字节数。
另请参阅
PySide2.QtWebSockets.QWebSocket.
setMaskGenerator
(
maskGenerator
)
¶
maskGenerator
–
QMaskGenerator
把用于创建掩码的生成器设为
maskGenerator
。默认
QWebSocket
生成器可以被重置通过提供
nullptr
。可以随时改变掩码生成器即使连接是打开的。
另请参阅
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
另请参阅
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.
另请参阅
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
(
)
¶
版本
返回目前正在使用的套接字版本。