daily pastebin goal
8%
SHARE
TWEET

Untitled

a guest Apr 16th, 2018 57 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. from channels.generic.websocket import AsyncJsonWebsocketConsumer
  2. from .tasks import PruebaCelery
  3. class Consumer(AsyncJsonWebsocketConsumer):
  4.     async def connect(self):
  5.         print(self.channel_name)
  6.         await self.accept()
  7.         print("[BACK]:Cliente conectado")
  8.  
  9.     async def disconnect(self, close_code):
  10.         return None
  11.  
  12.     async def receive_json(self, contenido):
  13.  
  14.         try:
  15.             if True:
  16.                 print("[BACK]:Datos recividos",contenido)
  17.                 await self.mensaje(contenido)
  18.         except:
  19.             pass
  20.  
  21.     async def mensaje(self, contenido):
  22.         print("[BACK]:Si se cumple la condicion se envia mensaje")
  23.         print(contenido["Clave_Tipo_Filtro"])
  24.         TipoFiltro = contenido["Clave_Tipo_Filtro"]
  25.         if TipoFiltro == "Filtro_Paso_Bajo":
  26.             print("dentro")
  27.             mensaje = PruebaCelery.delay(self.channel_name)
  28.             print("Here")
  29.             print ("hola %s" %str(mensaje["text"]))
  30.             print("Out")
  31.             print ("Task ID: %s" %mensaje)
  32.             await self.send("Task ID: %s" %str(mensaje))
  33.             await self.send("se ha ejecutado celery")
  34.         else:
  35.             print("no entra")
  36.  
  37.         return None
  38.    
  39. #De celery
  40. from Filtros.celery import app
  41. import json
  42. from channels.layers import get_channel_layer
  43. from asgiref.sync import AsyncToSync
  44.  
  45.  
  46. @app.task
  47. def PruebaCelery(channel_name):
  48.     # responder al cliente
  49.     channel_layer = get_channel_layer()
  50.     AsyncToSync(channel_layer.send)(
  51.                 channel_name,
  52.                 {"type": "Test",
  53.                  "text": json.dumps("Hi im celery"),
  54.                  })
  55.    
  56. <script type="text/javascript">
  57. //Envio de la conexion del front al back.
  58. function onOpen(evt) {
  59.     console.log("[FRONT]:El websocket ha sido conectado");
  60.     websocket.send(JSON.stringify({data: "[FRONT]:El websocket esta conectado...ahora estas conectado con el front"}));
  61. }
  62. //Recepcion datos del back al front
  63. function onMessage(evt) {
  64.     console.log("[FRONT]:Mensaje recibido del back al front:" + evt.data);
  65.  
  66. }
  67.  
  68. //Conexion del websocket
  69. function setupWebSocket() {
  70.     prefix = "ws";
  71.     websocket = new WebSocket(prefix + "://"  + location.host + "/Crear_FPB/");
  72.     websocket.onopen = function(evt) { onOpen(evt); };
  73.     websocket.onmessage = function(evt) { onMessage(evt); };
  74. }
  75.  
  76. //Envio de los datos del formulario del front al back.
  77. function runButton() {
  78.     var variables_FPBajo = {
  79.         Clave_Tipo_Filtro: "Filtro_Paso_Bajo",
  80.         Clave_Ap_db: $("#Valor_Ap_db").val(),  
  81.         Clave_Medida_Ap_db: $("#Medida_Ap_db").val(),
  82.         Clave_As_db: $("#Valor_As_db").val(),
  83.         Clave_Fp_Hz: $("#Valor_Fp_Hz").val()
  84.     };
  85.     websocket.send(JSON.stringify(variables_FPBajo));
  86. }
  87.  
  88. window.addEventListener("load", setupWebSocket);
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top