Este foro usa cookies
Este foro utiliza cookies para almacenar su información de inicio de sesión si está registrado y su última visita si no lo está. Las cookies son pequeños documentos de texto almacenados en su computadora; las cookies establecidas por este foro solo se pueden usar en este sitio web y no representan ningún riesgo de seguridad. Las cookies en este foro también rastrean los temas específicos que ha leído y la última vez que los leyó. Si Ud. continúa navegando, entenderemos que acepta todas las cookies.

Se almacenará una cookie en su navegador, independientemente de la elección, para evitar que se le vuelva a hacer esta pregunta. Podrá cambiar la configuración de sus cookies en cualquier momento utilizando el enlace en el pie de página.

El foro antiguo se encuentra accesible desde https://foro.gambas-es.org en modo de solo lectura.

Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5

Comunicaciones
#1

Hola Amigos.
Hace tiempo que siento curiosidad por las opciones de comunicación disponibles en gambas, y pensando en como establecer un canal de comunicación entre dos programas gambas para lo del tablero de puntaje de TercoIDE no se me ocurre como hacerlo de la forma mas eficiente.

En definitiva, como un programa gambas puede "decir" a otro cierra contacto 4 o "dime" temperatura 1 etc. etc. 

Desde el punto de vista de las comunicaciones hay dos grupos:
  • Gambas<PROTOCOLO>Gambas
  • Gambas<PROTOCOLO>OTRA-COSA
¿Que protocolos se pueden usar? y... ¿Hay ejemplos de estos?

1 Saludo.
    ¡Gracias!
#2

Ni idea. Fuera de ssh, nfs, html o vnc, que conectan con servidores o PCs nunca he utilizado otro. Para otros programas dentro de la misma máquina tienes dBus, pero no todos los programas son acordes con él.

Saludos

No podemos regresar
    ¡Gracias!
#3

Hace algún tiempo yo hice algunos Confused estudios sobre este tema.

https://www.gambas-it.org/wiki/index.php...mma_Gambas

"Los horizontes perdidos nunca regresan. " (F. Battiato, La stagione dell'amore, 1983)

"Las ondas nunca regresan. " (Genesis: Ripples - A trick of the tail, 1976)
[-] Los siguientes 1 usuarios dice gracias a vuott por este post:
  • tincho
    ¡Gracias!
#4

(07-12-2022, 15:55)vuott escribió:  Hace algún tiempo yo hice algunos Confused estudios sobre este tema.

Perfecto, lo estoy estudiando ahora mismo.

Ok, en este se puede enviar texto de un programa a otro.
[Imagen: WaJLLd4.png]
¿Es posible establecer una comunicación bidireccional?

1 Saludo.
    ¡Gracias!
#5

Tincho:
Cita:En definitiva, como un programa gambas puede "decir" a otro cierra contacto 4 o "dime" temperatura 1 etc. etc. 

Puedes usar socket, gambas trae un ejemplo de esto.
Yo hice hace tiempo un programa de chat que funcionaba con socket...

Tambien se puede usar el protocolo de mqtt (mosquito), mirate este enlace:
https://gambas-es.org/showthread.php?tid...light=mqtt

Saludos

Julio

Nota:
El programa chat, tanto para clientes como para el servidor los puedes encontrar en:
https://github.com/jsbsan/Ejemplos-del-C...LETOS/CHAT
[-] Los siguientes 2 usuarios dicen gracias a jsbsan por este post:
  • Shordi, tincho
    ¡Gracias!
#6

(07-12-2022, 19:44)jsbsan escribió:  Puedes usar socket, gambas trae un ejemplo de esto.

Gracias, estoy empezando a leer sobre este tema parece que tiene muchas posibilidades y aplicaciones.

(07-12-2022, 19:44)jsbsan escribió:  Yo hice hace tiempo un programa de chat que funcionaba con socket...

Gracias por compartir este código, seguramente me venga muy bien para estudiar como funciona socket.
pd: Intente abrirlo pero no es posible convertirlo a la versión 3 (es gambas2), intentare echar un vistazo de todas maneras.

1 Saludo.
    ¡Gracias!
#7

(07-12-2022, 19:44)jsbsan escribió:  Tambien se puede usar el protocolo de mqtt (mosquito), mirate este enlace:

Si recuerdo que conversamos de este tema, pero yo por lo menos no seguí indagando ¿Tu si?.
El usuario Silex propuso un código pero no intente usarlo.
GAMBAS
  1. ' Gambas module file
  2. Private proceso As Process 
  3.  
  4. Public Sub Main()
  5.   Print "Nos suscribimos al Topic Pruebagambas"
  6.   proceso = Shell "mosquitto_sub -h 'test.mosquitto.org' -t 'Pruebagambas'" For Read As "recepcion"
  7.  
  8. Public Sub recepcion_read() 
  9.   Dim datos As String
  10.   datos = Read #Last, Lof(Last) 
  11.   Print "Recepción:" & datos


Luego en la pagina de MQTT hay un esquema del protocolo.
https://mqtt.org/
[Imagen: mqtt-publish-subscribe.png]
De wikipedia en inglés he traducido al castellano pues no existe.

Visión general
El protocolo MQTT define dos tipos de entidades de red: un corredor de mensajes y una serie de clientes. Un broker MQTT es un servidor que recibe todos los mensajes de los clientes y, a continuación, enruta los mensajes a los clientes de destino apropiados. Un cliente MQTT es cualquier dispositivo (desde un microcontrolador hasta un servidor completo) que ejecuta una biblioteca MQTT y se conecta a un agente MQTT a través de una red.

La información se organiza en una jerarquía de temas. Cuando un editor tiene un nuevo dato que distribuir, envía un mensaje de control con los datos al broker conectado. A continuación, el broker distribuye la información a los clientes que se hayan suscrito a ese tema. El editor no necesita tener ningún dato sobre el número o la ubicación de los suscriptores, y éstos, a su vez, no tienen que estar configurados con ningún dato sobre los editores.

Si un broker recibe un mensaje sobre un tema para el que no hay suscriptores actuales, el broker descarta el mensaje a menos que el publicador del mensaje lo haya designado como mensaje retenido. Un mensaje retenido es un mensaje MQTT normal con el indicador retenido en true. El agente almacena el último mensaje retenido y la QoS correspondiente para el tema seleccionado. Cada cliente que se suscribe a un patrón de tema que coincide con el tema del mensaje retenido recibe el mensaje retenido inmediatamente después de suscribirse. El intermediario sólo almacena un mensaje retenido por tema. Esto permite a los nuevos suscriptores de un tema recibir el valor más reciente en lugar de esperar a la siguiente actualización de un editor.

Cuando un cliente de publicación se conecta por primera vez al broker, puede configurar un mensaje predeterminado que se enviará a los suscriptores si el broker detecta que el cliente de publicación se ha desconectado inesperadamente del broker.

Los clientes sólo interactúan con un corredor, pero un sistema puede contener varios servidores corredores que intercambian datos basados en los temas actuales de sus suscriptores.

Un mensaje de control MQTT mínimo puede tener tan sólo dos bytes de datos. En caso necesario, un mensaje de control puede transportar casi 256 megabytes de datos. Hay catorce tipos de mensajes definidos que se utilizan para conectar y desconectar un cliente de un broker, publicar datos, acusar recibo de datos y supervisar la conexión entre cliente y servidor.

MQTT se basa en el protocolo TCP para la transmisión de datos. Una variante, MQTT-SN, se utiliza sobre otros transportes como UDP o Bluetooth.

MQTT envía las credenciales de conexión en formato de texto plano y no incluye ninguna medida de seguridad o autenticación. Esto se puede proporcionar mediante el uso de TLS para cifrar y proteger la información transferida contra la interceptación, modificación o falsificación.

El puerto MQTT no cifrado por defecto es 1883. El puerto cifrado es 8883

1 Saludo.
    ¡Gracias!
#8

Instalando mosquito brooker en la raspberry pi.
Por cierto no les parece que el nombre Raspberry pi es berreta, ortera, cutre, malo ? no se, Arduino por ejemplo, me parece un buen nombre, pero Raspberry...? y Pi ?

Install Mosquitto MQTT Broker on Raspberry Pi
https://randomnerdtutorials.com/how-to-i...pberry-pi/

Mosquitto SSL Configuration -MQTT TLS Security
http://www.steves-internet-guide.com/mosquitto-tls/

1 Saludo.
    ¡Gracias!
#9

Tincho:
Cita:Si recuerdo que conversamos de este tema, pero yo por lo menos no seguí indagando ¿Tu si?.
No, pero se que es muy potente.
He visto videos usandolo con python:
https://www.albertcoronado.com/2018/07/0...to-python/
    ¡Gracias!
#10

Cita:pero Raspberry...? y Pi ?
Pi se pronuncia igual que pie, o sea, tarta en inglés. Raspberry Pi=Tarta de Frambuesa
¿Por qué esa horterada digna de mi nieta de 6 años?... ni idea. Al fin y al cabo son ingleses los desarrolladores, si veranean en Magaluz, no se les puede pedir mucho...

Saludos

No podemos regresar
    ¡Gracias!


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)