Django websocket, ¿para que usar NodeJs?

¿Alguna vez  han tenido un mal sueño en el que por alguna extraña razón nuestros colegas laborales empiezan a usar una herramienta que párese buena idea, pero no lo es?. Mas o menos así me siento cada que un programador de python/django  decide usar Node js.

Entre los motivos por los que he escuchado a alguien decir que decidió usar Nodejs es para usar  websocket. Para mi ese no es un motivo bueno por el cual usar Nodejs. Si tenemos en cuenta que websockets es solo una implementación de sockets con un par de particularidades (aparentemente innecesarias) en la comunicación entre el servidor y cliente técnicamente podemos usar websockets con cualquier lenguaje.

Este es un pequeño  servidor de websockets (en python) y un cliente  (en html con javascript) que construí una tarde hace  algunas semanas.

 

El servidor usa sockets y threadings normales de python junto con una librería llamada wspy que se encarga de manejar la comunicación según el estándar de websocket

 

La otra parte es el cliente que usa un poco javascript

 

Como verán es un Chat muy simple que comunica a todos los usuarios que entren. El ejemplo no es algo necesariamente funcional para nuestros proyectos, pero es una buena partida para implementar  websocket por ejemplo en un e-commerce y refrescar el stock de un producto. Y no tenemos que acudir a mezclas extrañas entre lenguajes del lado del servidor.

En django podemos hacer algo muy sencillo como crear un comando que encienda el servicio de sockets y desde el detectar cambios y  enviarlos al cliente, en el cliente un poco de javascript para cachar el mensaje y con ayuda de JSON.parse(jsonString);  tenemos todo resuelto.

 

PD: No es que nodejs sea una mala idea, se que hay gente muy floja que no quiere dominar mas de un lenguaje de programación…  y se les respeta, la realidad es que los programadores python programamos en este lenguaje por que somos en cierta forma flojos.  Mi problema con NodeJs es que javascript es un lenguaje que  aun que es flexible  arrastra particularidades poco pythonicas de sus antecesores.  Seria mas útil para el mundo correr python del lado del navegador.

Martin Quinta

Crecí con una computadora desde el kinder. Empece a programar a los 14 y hoy, mas de una década después… realmente odio estar frente a una computadora. Pero programar es en lo que soy bueno, por lo tanto me desahogo en este blog mientras bebo cerveza artesanal y pienso en un mundo bonito donde Java no existe.

Facebook Twitter LinkedIn  

Entradas relacionadas:

2 comentarios en: “Django websocket, ¿para que usar NodeJs?

  1. Creo que confundes NodeJs con el uso de Socket.io, que es cuando hace uso de WebSockets, es como python con Django.

    Python es el lenguaje asi mismo se podria decir con NodeJs(Javascript del lado del servidor orientado a eventos, asincrono y demas), y ya el uso de bibliotecas como Django, Flask, RF, o cualquier otro ya es para Python, lo mismo para NodeJs metes Socket.io para trabajar con websockets, que es como tu haces el import de socket en python.

    Y ya de ahi se empieza a trabajar ya dependiendo de cada uno de los dos., igualmente hay una biblioteca en NodeJs llamada WebSockets, que trabajas directamente como tu lo hace en el ejemplo con python aqui.

    1. No, no confundo :3 lo que define a un framework/tecnologia no es lo que hace, si no que tan diferente lo hace al resto… este post lo escribí por que tenia varios amigos que estaban estudiando nodejs para implementar websockets.. ilógico, en cualquier lenguaje puedes implementar websockets, solo es de buscarle.

Leave a Reply

Your email address will not be published. Required fields are marked *