Implementación de WebSocket usando Frasco Socket IO en Python

Python WebSocket Implementación : En este tutorial, vamos a aprender cómo implementar WebSocket usando Frasco Socket IO en Python?

Python WebSocket usando Frasco Socket IO

frasco es un marco pitón web integrado. Se considera que más Pythonic web framework Django porque en situaciones comunes el equivalente Frasco de aplicaciones web es más explícito. usos Frasco sosiego para responder a las peticiones HTTP. La combinación de la WebSocket con el frasco hará que sea un implemento de aplicaciones web en tiempo real con doble comunicación con la facilidad de WebSocket.

aplicación frasco Ejemplo class simple ‘hola mundo’

La instalación de las bibliotecas en el entorno virtual,

  • Crear un entorno virtual
    -bash-4,2 € python3 -m Venv Venv
  • fuente (o activar) el entorno virtual
    Venv -bash-4,2 € fuente / bin / activate
  • instalar la biblioteca requerido usando pip
    (Venv) -bash-4,2 € pip instalar matraz
    (Venv) – basj-4,2 € pip instalar matraz de SocketIO

código de ejemplo del servidor

from flask import Flask
app = Flask(__name__)
@app.route('/', methods=['GET'])
def hello_world():
return "Hello World"
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5005)

Ejecutar el código

    (venv) -bash-4.2$ python3 hello_world_flask.py
* Serving Flask app "hello_world_flask" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://0.0.0.0:5005/ (Press CTRL+C to quit)

Para probar la aplicación, o bien utilizar el navegador y proporcionar la URL como ‘http : // localhost: 5005 /’ o comando curl

    -bash-4.2$ curl http://localhost:5005/
Hello World
-bash-4.2$

conseguir Matraz trabajar con WebSockets

vamos a utilizar socket.io y el correspondiente Frasco complemento. Socket-IO es un motor de brillante que permite la comunicación basada en eventos bi-direccional. for las comunicaciones de socket-io, ‘eventos’ son provocados por cualquiera de los servidores o clientes conectados y las correspondientes funciones de llamada de vuelta se establecen para ejecutar cuando se detectan los eventos.

la aplicación de los activadores de eventos o devoluciones de llamada de enlace de eventos se implementan de manera muy sencilla en Frasco mediante el siguiente código.

from flask import Flask, render_template
from flask_socketio import SocketIO, emit
app = Flask(__name__)
app.config['SECRET_KEY'] = 'include_help!'
socketio = SocketIO(app)
@socketio.on('my event', namespace='/my_namespace')
# this method is invoked when an event called
# 'my event' is is triggered
def test_message(message):
# this triggers new event called 'i said'
emit('i said ', {'data': message['data']})
if __name__ == '__main__':
socketio.run(app)

En el lado del cliente, un poco de Javascript con jQuery se utiliza para controlar los eventos de activación de entrada y salida.

$(document).ready(function() {
// Use a "/my_namespace" namespace.
namespace = '/my_namespace';
// Connect to the Socket.IO server.
// The connection URL has the following format,
// relative to the current page:
// http[s]://<domain>:<port>[/<namespace>]
var socket = io(namespace);
// The callback function is invoked when a connection with the
// server is established.
socket.on('connect', function() {
socket.emit('my_event', {
data: 'I'm connected!'
});
});
// Event handler for server sent data.
// The callback function is invoked whenever the server emits data
// to the client. The data is then displayed in the "Received"
// section of the page.
socket.on('i said', function(msg) {
$('#log').append('<br>' + $('<div/>').text('Received #' + msg.count + ': ' + msg.data).html());
});
});

Y efectivamente lo anterior, es el esqueleto de envío de mensajes entre el servidor y el cliente.


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *