内容表

上一话题

QWebSocketProtocol

下一话题

PySide2.QtWidgets

QWebSocketServer

Implements a WebSocket -based server. 更多

Inheritance diagram of PySide2.QtWebSockets.QWebSocketServer

概要

信号

详细描述

它被建模根据 QTcpServer ,且行为相同。因此,若知道如何使用 QTcpServer , you know how to use QWebSocketServer . This class makes it possible to accept incoming WebSocket connections. You can specify the port or have QWebSocketServer pick one automatically. You can listen on a specific address or on all the machine’s addresses. Call listen() to have the server listen for incoming connections.

newConnection() signal is then emitted each time a client connects to the server. Call nextPendingConnection() to accept the pending connection as a connected QWebSocket 。函数返回的指针指向 QWebSocket in ConnectedState ,可以用于与客户端进行通信。

若发生错误, serverError() returns the type of error, and errorString() can be called to get a human readable description of what happened.

当监听连接时,服务器正监听的可用地址和端口为 serverAddress() and serverPort() .

调用 close() makes QWebSocketServer stop listening for incoming connections.

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

注意

当与自签名证书一起工作时, Firefox bug 594502 阻止 Firefox 去连接到安全 WebSocket 服务器。要解决此问题,先浏览到安全 WebSocket 服务器使用 HTTPS。FireFox 将指示证书无效。从这里开始,证书会被添加到异常。在此之后,安全 WebSockets 连接应该工作。

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

为避免拒绝服务,默认连接握手超时为 10 秒,还可以定制使用 setHandshakeTimeout() .

另请参阅

WebSocket 服务器范例 QWebSocket

class 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 被返回。

另请参阅

errorString()

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

unicode

返回人类可读的最后发生的错误的描述。若未发生错误,返回空字符串。

另请参阅

serverError()

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。

另请参阅

isListening()

PySide2.QtWebSockets.QWebSocketServer. maxPendingConnections ( )
返回类型

int

返回最大待决已接受连接数。默认为 30。

PySide2.QtWebSockets.QWebSocketServer. nativeDescriptor ( )
返回类型

qintptr

返回服务器用于监听传入指令的本机套接字描述符,或 -1 若服务器未监听。若服务器正在使用 QNetworkProxy ,返回的描述符可能不能用于本机套接字函数。

PySide2.QtWebSockets.QWebSocketServer. newConnection ( )
PySide2.QtWebSockets.QWebSocketServer. nextPendingConnection ( )
返回类型

QWebSocket

返回下一待决连接作为已连接 QWebSocket 对象。 QWebSocketServer 不拥有所有权对于返回的 QWebSocket 对象。直到调用者明确删除对象,当它不再被使用时,否则会发生内存泄漏。返回 nullptr,若在没有待决连接时调用此函数。

注意:返回的 QWebSocket 对象不可以用于其它线程。

PySide2.QtWebSockets.QWebSocketServer. originAuthenticationRequired ( pAuthenticator )
参数

pAuthenticator QWebSocketCorsAuthenticator

PySide2.QtWebSockets.QWebSocketServer. pauseAccepting ( )

暂停传入新连接。排队连接将保留在队列中。

另请参阅

resumeAccepting()

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

authenticator QSslPreSharedKeyAuthenticator

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

QNetworkProxy

返回此服务器的网络代理。默认情况下 DefaultProxy 被使用。

另请参阅

setProxy()

PySide2.QtWebSockets.QWebSocketServer. resumeAccepting ( )

再继续接受新连接。

另请参阅

pauseAccepting()

PySide2.QtWebSockets.QWebSocketServer. secureMode ( )
返回类型

SslMode

返回服务器运行所处的安全模式。

另请参阅

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 握手阶段使用的服务器名称。

另请参阅

setServerName()

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);
											

另请参阅

proxy()

PySide2.QtWebSockets.QWebSocketServer. setServerName ( serverName )
参数

serverName – unicode

把 HTTP 握手阶段将使用的服务器名称设为给定 serverName 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.