def __init__(self, parent): super().__init__(parent) self.client = QWebSocket("", QWebSocketProtocol.Version13, None) self.client.error.connect(self.onError) self.client.connected.connect(self.onConnected) self.client.disconnected.connect(self.onDisconnected) self.ssl_config = QSslConfiguration() self.ssl_cert_file = QFile(":certs/server.pem") self.ssl_cert_file.open(QIODevice.ReadOnly) self.ssl_cert = QSslCertificate(self.ssl_cert_file) self.ssl_config.setCaCertificates([self.ssl_cert]) self.client.setSslConfiguration(self.ssl_config) self.message_queue = [] self.is_connected = False self.telemetry_connected = False self.websocket_url = "wss://localhost:8081" self.websocket_token = "aVerySecureToken" self.timer_connection_watchdog = QTimer(parent) self.timer_connection_watchdog.start(5000) self.timer_connection_watchdog.timeout.connect(self.connection_watchdog) self.timer_reconnect = QTimer(parent) self.timer_reconnect.start(500) self.timer_reconnect.timeout.connect(self.send_message)
def OpenConnection(self): self.CloseConnection() if (self.connectionType.lower() == "socket" or self.connectionType.lower() == "qtsocket"): if "ws:" in self.connectionName: connectionName = self.connectionName.replace("ws://", "") (ip, port) = connectionName.rsplit(":", 1) if ip == None or ip == "": ip = "127.0.0.1" if port == None or port == "": port = "5679" connectionName = "ws://" + ip + ":" + port from PyQt5.QtWebSockets import QWebSocket from PyQt5.QtCore import QUrl self.connection = QWebSocket() print("opening websocket " + connectionName) self.connection.open(QUrl(connectionName)) self.connection.binaryMessageReceived.connect( self.processBinaryMessage) self.sendBytesFn = self.connection.sendBinaryMessage else: #print("opening TCP socket " + self.connectionName) (ip, port) = self.connectionName.rsplit(":", 1) if ip == None or ip == "": ip = "127.0.0.1" if port == None or port == "": port = "5678" port = int(port) #print("ip is ", ip, ", port is ", port) self.connection = QtNetwork.QTcpSocket(self) self.connection.error.connect(self.displayConnectError) ret = self.connection.readyRead.connect(self.readRxBuffer) self.connection.connectToHost(ip, port) self.readBytesFn = self.connection.read self.sendBytesFn = self.connection.write #print("making connection returned", ret, "for socket", self.connection) self.connection.connected.connect(self.onConnected) self.connection.disconnected.connect(self.onDisconnect) elif (self.connectionType.lower() == "file"): try: self.connection = open(self.connectionName, 'rb') self.readBytesFn = self.connection.read self.sendBytesFn = self.connection.write except IOError: print("\nERROR!\ncan't open file ", self.connectionName) sys.exit(1) else: print("\nERROR!\nneed to specify socket or file") sys.exit() self.connection
def __init__(self): QObject.__init__(self) self.websocket = QWebSocket() self._connected = False self._data = None self.websocket.connected.connect(self.slot_connected) self.websocket.disconnected.connect(self.slot_disconnected) self.websocket.textMessageReceived.connect(self.slot_message_received) self.websocket.error.connect(self.slot_error)
def __init__(self, parent=None): super().__init__() self.setReadOnly(True) self.setFont(textfont) self.WS = QWebSocket() self.WS.textMessageReceived.connect( self.signal_textMessageReceived_process) self.WS.connected.connect(self.signal_connected_process) self.WS.disconnected.connect(self.signal_disconnected_process) self.WS.error.connect(self.signal_error_process) self.WS.readChannelFinished.connect( self.signal_readChannelFinished_process)
def __init__(self, logger, core, config): super().__init__(core) self.core = core self.logger = logger disabled = False self.config = config self.url = config['multichat-url'].rstrip('/') + '/' self.key = config['multichat-key'] self.server_name = config[ 'server-name'] if 'server-name' in config else '' self.do_listen = config['listen'] self.do_post = config['post'] self.ignore_prefix = config['ignore-prefix'] self.lang = 'en' # default value if 'lang' in config: if config['lang'] not in SUPPORTED_LANGUAGES: self.logger.warning('Unsupported language: {}'.format( config['lang'])) else: self.lang = config['lang'] # load mcBasicLib self.utils = core.get_plugin('mcBasicLib') if self.utils is None: self.logger.error( 'Failed to load plugin "mcBasicLib", multiChat will be disabled.' ) self.logger.error( 'Please make sure that "mcBasicLib" has been added to plugins.' ) disabled = True if disabled: return self.ws = QWebSocket() self.ws_valid = False # connect signals and slots self.core.sig_server_start.connect(self.on_server_start) self.core.sig_server_stop.connect(self.on_server_stop) self.utils.sig_input.connect(self.on_player_input) self.utils.sig_login.connect(self.on_player_login) self.utils.sig_logout.connect(self.on_player_logout) self.utils.sig_advancement.connect(self.on_advancement) self.utils.sig_death.connect(self.on_death) self.ws.connected.connect(self.on_connected) self.ws.textMessageReceived.connect(self.on_recv) self.ws.disconnected.connect(self.on_connection_broken) self.retry_interval = RETRY_INTERVAL_MIN self.retry_timer = QtCore.QTimer() self.retry_timer.timeout.connect(self.on_retry_timer) self.on_retry_timer() # open connection using this function
def __init__(self, event_loop, *args, **kwargs): super().__init__(*args, **kwargs) self.ui: QWidget = uic.loadUi(ui_settings.ui_main_window) self.setup_ui() self.tray_icon = self.setup_tray_icon() self.tray_icon.show() self.ensure_addr_not_in_use() self.event_loop = event_loop self.ws_client = QWebSocket() self.ping_daemon_timer = QTimer(self) self.ping_daemon_timer.setInterval(1000) self.ping_daemon_timer.start() self.sync_status_timer = QTimer(self) self.sync_status_timer.setInterval(2000) self.connect_signals() sg = QDesktopWidget().screenGeometry() widget = self.ui.geometry() self.ui.move(int((sg.width() - widget.width()) / 4), int((sg.height() - widget.height()) / 3)) self.start_memority_core()
def __init__(self): super(aliPayControl, self).__init__() self.setupUi(self) self.show() self.config = ConfigObj(profile.CONFIG_INI_URL, encoding=profile.ENCODING) self.websocket = QWebSocket("", QtWebSockets.QWebSocketProtocol.Version13, None) # 与直播服务器的连接 self.websocket.connected.connect(self.on_connected) self.websocket.disconnected.connect(self.on_disconnected) self.websocket.textMessageReceived.connect(self.on_textMessageReceived) self.websocket.error.connect(self.on_error) self.websocket.stateChanged.connect(self.on_stateChanged) self.start_work_signal.connect( self.on_start_work_signal) # 接收到服务器开始工作的指令 self.option = webdriver.ChromeOptions() self.title = "" self.option.add_argument('disable-infobars') self.option.add_argument('--log-level=3') self.option.add_experimental_option("excludeSwitches", ['enable-automation']) self.driver = Chrome(chrome_options=self.option, executable_path=profile.WEB_DRIVER_PATH) self.driver.implicitly_wait(2) # 所有的加载页面隐式等待20秒 self.time = 2 self.wait_time = 5 self.exception = (Exception, ) self.flash_timer = QTimer(self) self.flash_timer.timeout.connect(self.on_flash_timer) self.flash_timer.setInterval(int(self.config['INTERVAL']) * 1000) self.ping_timer = QTimer(self) self.ping_timer.timeout.connect(self.on_ping_timer) self.ping_timer.setInterval(20 * 1000)
def __init__(self, *args, **kwargs): super(WebSocketWindow, self).__init__(*args, **kwargs) uic.loadUi('WebSocketTest.ui', self) self._param_sep = '\n\n' + '-' * 50 self._files = [] self.listWidget.setEnabled(False) # 读取配置文件 setting = QSettings( 'F:/QtDesigner/Windows/plugins/designer/data/server.ini', QSettings.IniFormat) port = setting.value('ws_port', 55441) self.editAddress.setPlaceholderText('比如:ws://127.0.0.1:%s' % port) self.editAddress.setText('ws://127.0.0.1:%s' % port) self._socket = QWebSocket(parent=self) self._socket.connected.connect(self.onConnected) self._socket.disconnected.connect(self.onDisconnected) self._socket.binaryMessageReceived.connect( self.onBinaryMessageReceived) self._socket.textMessageReceived.connect(self.onTextMessageReceived) self._socket.error.connect(self.onError)
def __init__(self, parent=None): super(Client, self).__init__(parent) self.networkSession = None self.blockSize = 0 self.currentFortune = '' self.title = "扫码收货PC辅助程序" hostLabel = QLabel('IP:') hostLabel.setFont(qtawesome.font('fa', 14)) portLabel = QLabel('端口:') portLabel.setFont(qtawesome.font('fa', 14)) taskCodeLabel = QLabel('任务码:') taskCodeLabel.setFont(qtawesome.font('fa', 14)) self.serverMsgLable = QLabel('来自服务端的消息:') self.serverMsgLable.setFont(qtawesome.font('fa', 14)) self.sendMsgLabel = QLabel('将要发送的消息:') self.sendMsgLabel.setFont(qtawesome.font('fa', 14)) self.hostCombo = QComboBox() self.hostCombo.setEditable(True) name = QHostInfo.localHostName() if name != '': self.hostCombo.addItem(name) domain = QHostInfo.localDomainName() if domain != '': self.hostCombo.addItem(name + '.' + domain) if name != 'localhost': self.hostCombo.addItem('10.286.88.124') ipAddressesList = QNetworkInterface.allAddresses() for ipAddress in ipAddressesList: if not ipAddress.isLoopback(): self.hostCombo.addItem(ipAddress.toString()) for ipAddress in ipAddressesList: if ipAddress.isLoopback(): self.hostCombo.addItem(ipAddress.toString()) self.portLineEdit = QLineEdit() self.portLineEdit.setValidator(QIntValidator(1, 65535, self)) self.portLineEdit.setPlaceholderText("请输入端口") self.taskLineEdit = QLineEdit() self.taskLineEdit.setPlaceholderText("请向组长询问后输入任务码") self.taskLineEdit.setValidator(QIntValidator(1, 9999, self)) self.serverLineEdit = QLineEdit() self.serverLineEdit.setPlaceholderText('服务器发送的消息会显示在这里') self.sendTextEdit = QTextEdit() self.sendTextEdit.setPlaceholderText('请输入先要发送给服务器的消息') hostLabel.setBuddy(self.hostCombo) portLabel.setBuddy(self.portLineEdit) taskCodeLabel.setBuddy(self.taskLineEdit) self.serverMsgLable.setBuddy(self.serverLineEdit) self.sendMsgLabel.setBuddy(self.sendTextEdit) self.statusLabel = QLabel("状态:尚未连接") self.statusLabel.setAutoFillBackground(True) self.statusLabel.setAlignment(Qt.AlignCenter) palette = QPalette() # 新建一个调色板 palette.setColor(QPalette.Window, Qt.red) # 设置颜色 self.statusLabel.setPalette(palette) self.statusLabel.setStyleSheet(''' color:#ffffff; font-size:18px; font-weight:bold; ''') self.getFortuneButton = QPushButton("启动连接") self.getFortuneButton.setDefault(True) self.getFortuneButton.setEnabled(False) quitButton = QPushButton("退出") self.stopButton = QPushButton("中止连接") self.stopButton.setDefault(True) self.stopButton.setEnabled(False) buttonBox = QDialogButtonBox() buttonBox.addButton(self.getFortuneButton, QDialogButtonBox.ActionRole) buttonBox.addButton(self.stopButton, QDialogButtonBox.AcceptRole) buttonBox.addButton(quitButton, QDialogButtonBox.RejectRole) self.sendMsgbutton = QPushButton('发送消息') self.webSocket = QWebSocket() self.hostCombo.editTextChanged.connect(self.enableGetFortuneButton) self.portLineEdit.textChanged.connect(self.enableGetFortuneButton) self.taskLineEdit.textChanged.connect(self.enableGetFortuneButton) self.getFortuneButton.clicked.connect(self.CreateNewConn) self.stopButton.clicked.connect(self.stopCurrentConn) quitButton.clicked.connect(self.close) self.webSocket.connected.connect(self.websocketConnect) self.webSocket.disconnected.connect(self.webSocketDisconnect) self.webSocket.error.connect(self.displayError) self.webSocket.textMessageReceived.connect( self.webSocketMessageReceived) self.sendTextEdit.textChanged.connect(self.enableSendMessageButton) self.sendMsgbutton.clicked.connect(self.sendMsgToServer) mainLayout = QGridLayout() mainLayout.addWidget(hostLabel, 0, 0) mainLayout.addWidget(self.hostCombo, 0, 1) mainLayout.addWidget(portLabel, 1, 0) mainLayout.addWidget(self.portLineEdit, 1, 1) mainLayout.addWidget(taskCodeLabel, 2, 0) mainLayout.addWidget(self.taskLineEdit, 2, 1) mainLayout.addWidget(self.statusLabel, 3, 0, 1, 2) mainLayout.addWidget(buttonBox, 4, 0, 1, 2) mainLayout.addWidget(self.serverMsgLable, 5, 0) mainLayout.addWidget(self.serverLineEdit, 5, 1, 1, 1) mainLayout.addWidget(self.sendMsgLabel, 6, 0) mainLayout.addWidget(self.sendTextEdit, 6, 1) mainLayout.addWidget(self.sendMsgbutton, 7, 0, 1, 5) self.serverLineEdit.setEnabled(False) self.serverMsgLable.setVisible(False) self.serverLineEdit.setVisible(False) self.sendMsgLabel.setVisible(False) self.sendTextEdit.setVisible(False) self.sendMsgbutton.setEnabled(False) self.sendMsgbutton.setVisible(False) self.setLayout(mainLayout) mainLayout.setSpacing(10) self.setWindowTitle(self.title) self.portLineEdit.setFocus() manager = QNetworkConfigurationManager() if manager.capabilities( ) & QNetworkConfigurationManager.NetworkSessionRequired: settings = QSettings(QSettings.UserScope, 'QtProject') settings.beginGroup('QtNetwork') id = settings.value('DefaultNetworkConfiguration') settings.endGroup() config = manager.configurationFromIdentifier(id) if config.state() & QNetworkConfiguration.Discovered == 0: config = manager.defaultConfiguration() self.networkSession = QNetworkSession(config, self) self.networkSession.opened.connect(self.sessionOpened) self.getFortuneButton.setEnabled(False) self.statusLabel.setText("Opening network session.") self.networkSession.open()
def __init__(self): super(Chat, self).__init__() self.websocket = QWebSocket() self.websocket.textMessageReceived.connect(self.on_text_message_received)