コード例 #1
0
ファイル: wsclient.py プロジェクト: hmiefert/NSRTL
    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)
コード例 #2
0
    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
コード例 #3
0
    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)
コード例 #4
0
    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)
コード例 #5
0
ファイル: multiChat.py プロジェクト: mana9er/mc-multiChat
    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
コード例 #6
0
ファイル: main_window.py プロジェクト: trinitymkt/memority
 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()
コード例 #7
0
    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)
コード例 #8
0
    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)
コード例 #9
0
    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()
コード例 #10
0
ファイル: chat.py プロジェクト: warpspeedchic/Snookey3
 def __init__(self):
     super(Chat, self).__init__()
     self.websocket = QWebSocket()
     self.websocket.textMessageReceived.connect(self.on_text_message_received)