Implements a WebSocket -based server. 更多 …
def
close
()
def
error
()
def
errorString
()
def
handleConnection
(socket)
def
handshakeTimeoutMS
()
def
hasPendingConnections
()
def
isListening
()
def
listen
([address=QHostAddress.Any[, port=0]])
def
maxPendingConnections
()
def
nativeDescriptor
()
def
pauseAccepting
()
def
proxy
()
def
resumeAccepting
()
def
secureMode
()
def
serverAddress
()
def
serverName
()
def
serverPort
()
def
serverUrl
()
def
setHandshakeTimeout
(msec)
def
setMaxPendingConnections
(numConnections)
def
setNativeDescriptor
(descriptor)
def
setProxy
(networkProxy)
def
setServerName
(serverName)
def
setSocketDescriptor
(socketDescriptor)
def
socketDescriptor
()
def
supportedVersions
()
def
nextPendingConnection
()
def
acceptError
(socketError)
def
closed
()
def
newConnection
()
def
originAuthenticationRequired
(pAuthenticator)
def
preSharedKeyAuthenticationRequired
(authenticator)
def
serverError
(closeCode)
它被建模根据
QTcpServer,且行为相同。因此,若知道如何使用QTcpServer, you know how to useQWebSocketServer. This class makes it possible to accept incoming WebSocket connections. You can specify the port or haveQWebSocketServerpick one automatically. You can listen on a specific address or on all the machine’s addresses. Calllisten()to have the server listen for incoming connections.
newConnection()signal is then emitted each time a client connects to the server. CallnextPendingConnection()to accept the pending connection as a connectedQWebSocket。函数返回的指针指向QWebSocketinConnectedState,可以用于与客户端进行通信。若发生错误,
serverError()returns the type of error, anderrorString()can be called to get a human readable description of what happened.当监听连接时,服务器正监听的可用地址和端口为
serverAddress()andserverPort().调用
close()makesQWebSocketServerstop listening for incoming connections.
QWebSocketServercurrently does not support WebSocket 扩展 and WebSocket 子协议 .注意
当与自签名证书一起工作时, Firefox bug 594502 阻止 Firefox 去连接到安全 WebSocket 服务器。要解决此问题,先浏览到安全 WebSocket 服务器使用 HTTPS。FireFox 将指示证书无效。从这里开始,证书会被添加到异常。在此之后,安全 WebSockets 连接应该工作。
QWebSocketServeronly supports version 13 of the WebSocket 协议, 描述于 RFC 6455 .为避免拒绝服务,默认连接握手超时为 10 秒,还可以定制使用
setHandshakeTimeout().另请参阅
WebSocket 服务器范例
QWebSocket
QWebSocketServer
(
serverName
,
secureMode
[
,
parent=None
]
)
¶
- param parent
QObject- param secureMode
SslMode- param serverName
unicode
构造新
QWebSocketServer
采用给定
serverName
。
serverName
将在 HTTP 握手阶段被用于标识服务器。它可以为空,在此情况下,不会把服务器名称发送给客户端。
secureMode
参数指示服务器操作是通过 wss (
SecureMode
) 或通过 ws (
NonSecureMode
).
parent
会被传递给
QObject
构造函数。
PySide2.QtWebSockets.QWebSocketServer.
SslMode
¶
Indicates whether the server operates over wss () or ws ()
|
常量 |
描述 |
|---|---|
|
QWebSocketServer.SecureMode |
服务器运转于安全模式下 (通过 wss) |
|
QWebSocketServer.NonSecureMode |
服务器运转于非安全模式下 (通过 wss) |
PySide2.QtWebSockets.QWebSocketServer.
acceptError
(
socketError
)
¶
socketError
–
SocketError
PySide2.QtWebSockets.QWebSocketServer.
close
(
)
¶
关闭服务器。服务器将不再监听传入连接。
PySide2.QtWebSockets.QWebSocketServer.
closed
(
)
¶
PySide2.QtWebSockets.QWebSocketServer.
error
(
)
¶
CloseCode
返回最后发生错误的错误代码。若没有发生错误,
CloseCodeNormal
被返回。
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
errorString
(
)
¶
unicode
返回人类可读的最后发生的错误的描述。若未发生错误,返回空字符串。
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
handleConnection
(
socket
)
¶
socket
–
QTcpSocket
升级 TCP
socket
到 WebSocket。
QWebSocketServer
对象将拥有套接字对象的所有权,并在适当时删除它。
PySide2.QtWebSockets.QWebSocketServer.
handshakeTimeoutMS
(
)
¶
int
返回新连接的握手超时 (以毫秒为单位)。
默认为 10 秒。若对等方使用更多的时间完成握手,其连接会被关闭。
另请参阅
setHandshakeTimeout()
handshakeTimeout()
PySide2.QtWebSockets.QWebSocketServer.
hasPendingConnections
(
)
¶
bool
返回 true 若服务器有待决连接;否则返回 false。
PySide2.QtWebSockets.QWebSocketServer.
isListening
(
)
¶
bool
返回 true 若服务器目前正在监听传入连接;否则返回 false。若监听失败,
error()
will return the reason.
PySide2.QtWebSockets.QWebSocketServer.
listen
(
[
address=QHostAddress.Any
[
,
port=0
]
]
)
¶
address
–
QHostAddress
port
–
quint16
bool
告诉服务器去监听传入连接在地址
address
和端口
port
。若
port
为 0,自动选取端口。若
address
is
Any
,服务器将监听所有网络接口。
返回 true 当成功时;否则返回 false。
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
maxPendingConnections
(
)
¶
int
返回最大待决已接受连接数。默认为 30。
PySide2.QtWebSockets.QWebSocketServer.
nativeDescriptor
(
)
¶
qintptr
返回服务器用于监听传入指令的本机套接字描述符,或 -1 若服务器未监听。若服务器正在使用
QNetworkProxy
,返回的描述符可能不能用于本机套接字函数。
PySide2.QtWebSockets.QWebSocketServer.
newConnection
(
)
¶
PySide2.QtWebSockets.QWebSocketServer.
nextPendingConnection
(
)
¶
返回下一待决连接作为已连接
QWebSocket
对象。
QWebSocketServer
不拥有所有权对于返回的
QWebSocket
对象。直到调用者明确删除对象,当它不再被使用时,否则会发生内存泄漏。返回 nullptr,若在没有待决连接时调用此函数。
注意:返回的
QWebSocket
对象不可以用于其它线程。
PySide2.QtWebSockets.QWebSocketServer.
originAuthenticationRequired
(
pAuthenticator
)
¶
pAuthenticator
–
QWebSocketCorsAuthenticator
PySide2.QtWebSockets.QWebSocketServer.
pauseAccepting
(
)
¶
暂停传入新连接。排队连接将保留在队列中。
另请参阅
authenticator
–
QSslPreSharedKeyAuthenticator
PySide2.QtWebSockets.QWebSocketServer.
proxy
(
)
¶
QNetworkProxy
返回此服务器的网络代理。默认情况下
DefaultProxy
被使用。
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
resumeAccepting
(
)
¶
再继续接受新连接。
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
secureMode
(
)
¶
返回服务器运行所处的安全模式。
另请参阅
QWebSocketServer()
SslMode
PySide2.QtWebSockets.QWebSocketServer.
serverAddress
(
)
¶
QHostAddress
Returns the server’s address if the server is listening for connections; otherwise returns
Null
.
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
serverError
(
closeCode
)
¶
closeCode
–
CloseCode
PySide2.QtWebSockets.QWebSocketServer.
serverName
(
)
¶
unicode
返回在 HTTP 握手阶段使用的服务器名称。
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
serverPort
(
)
¶
quint16
Returns the server’s port if the server is listening for connections; otherwise returns 0.
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
serverUrl
(
)
¶
QUrl
返回客户端可以用来连接到此服务器的 URL,若服务器正在监听连接。否则,返回无效 URL。
PySide2.QtWebSockets.QWebSocketServer.
setHandshakeTimeout
(
msec
)
¶
msec
–
int
这是重载函数。
PySide2.QtWebSockets.QWebSocketServer.
setMaxPendingConnections
(
numConnections
)
¶
numConnections
–
int
把最大待决接受连接数设为
numConnections
.
WebSocketServer
将接受不超过
numConnections
传入连接先于
nextPendingConnection()
is called. By default, the limit is 30 pending connections.
QWebSocketServer
将发射
error()
signal with the
CloseCodeAbnormalDisconnection
关闭代码,当到达最大连接数时。
WebSocket
握手将失败且套接字会被关闭。
PySide2.QtWebSockets.QWebSocketServer.
setNativeDescriptor
(
descriptor
)
¶
descriptor
–
qintptr
bool
把此服务器在监听传入连接时应该使用的套接字描述符设为
socketDescriptor
.
返回 true,若套接字设置成功;否则返回 false。假定套接字处于监听状态。
PySide2.QtWebSockets.QWebSocketServer.
setProxy
(
networkProxy
)
¶
networkProxy
–
QNetworkProxy
把此服务器的显式网络代理设为
networkProxy
.
要禁用代理的使用,使用
NoProxy
代理类型:
server->setProxy(QNetworkProxy::NoProxy);
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
setServerName
(
serverName
)
¶
serverName – unicode
把 HTTP 握手阶段将使用的服务器名称设为给定
serverName
。
serverName
可以为空,在此情况下,将向客户端发送空服务器名称。现有已连接客户端不会被通知对于此改变,仅新连接客户端会见到此新名称。
另请参阅
PySide2.QtWebSockets.QWebSocketServer.
setSocketDescriptor
(
socketDescriptor
)
¶
socketDescriptor
–
int
bool
注意
此函数被弃用。
把此服务器在监听传入连接时应该使用的套接字描述符设为
socketDescriptor
.
返回 true,若套接字设置成功;否则返回 false。假定套接字处于监听状态。
PySide2.QtWebSockets.QWebSocketServer.
socketDescriptor
(
)
¶
int
注意
此函数被弃用。
返回服务器用于监听传入指令的本机套接字描述符,或 -1 若服务器未监听。若服务器正在使用
QNetworkProxy
,返回的描述符可能不能用于本机套接字函数。
PySide2.QtWebSockets.QWebSocketServer.
supportedVersions
(
)
¶
Returns a list of WebSocket versions that this server is supporting.