Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo se conecta Python a websocket

Cómo se conecta Python a websocket

Hay un ejemplo a continuación, que se basa en la versión python27. Primero debe instalar websocket-client.

El proceso aproximado es el siguiente, los datos específicos a transmitir, o necesita conocer las disposiciones de comunicación de mensajes entre el cliente y el servidor, y cambiarlos según sus propias necesidades #-*- ?codificación: utf-8? -*-

importar?sys

desde?socket?import?*-

desde?sys

desde?utf-8 ?-*-

importar?sys

desde?socket?import?*

importar?json,?time,? hilo

desde?websocket?import?create_connection

desde?websocket?connection

recargar(sys)

sys.setdefaultencoding(" utf8")

#?{

#?127.0.0.1',

#?PORT':?10086

#? }

#pip?install?websocket-client

clase?Cliente():

def?__init__(self):

#Llame al método create_connection para crear un enlace websocket

#Cambie la dirección del enlace a la suya

self.ws?=?create_connection("ws://47.93.91.89: 10086/nombre/jeje")

#Construya un hilo para monitorear los datos enviados por el servidor al cliente. datos

self.trecv?=?threading.Thread(target=self.recv)

self.trecv.start()

#Método de envío, en Se llama cuando se chatea usando una declaración de entrada, el valor predeterminado aquí es chat grupal ALL

def(self, content):

# El cuerpo del mensaje definido aquí debe reemplazarse por el suyo propio. El texto del mensaje se convierte en lo que necesitas.

msg={

"type":"POST",

"username":"jeje",

"sendto" : "TODOS",

"contenido": contenido

}

msg?=? json.dumps(msg)

self .ws.send(msg)

# Recibir datos enviados desde el servidor al cliente Mientras ws esté en estado conectado, continuará recibiendo datos

def? recv(self):

intenta:

mientras? self.ws.connected:

resultado?=?self.ws.recv()

imprimir?"recibido ?msg: " str(resultado)

excepto?Excepción, e:

pasar

# Enviar el método QUIT al cerrar para salir del enlace ws

def?close(self):

#Específicamente, necesita conocer el texto del mensaje de su enlace de salida si no lo hace. No lo sé, no necesitas usar este método

msg={

"type":"QUIT",

"username":"johanna ",

"content":"adiós a todos"

}

msg?=?json.dumps(msg)

self.ws.send(msg)

if?__name__? ==?__main__':

c=?Client()

# Continuar con el enlace ws estado cuando la entrada no es de salida y cierra el enlace si sale

mientras?True:

content?=?raw_input("¿Por favor?Enter (input?exit? to ?salir):")

if?content?== ?" salir":

c.close()

romper

más:

c.send(content)

time.sleep(1)