Aller au contenu

Module Lua socket

Le module socket permet d'interagir avec des sockets, en facilitant la communication réseau pour la lecture et l'écriture de données. Les paramètres de configuration incluent l'adresse IP, le port, et le timeout.

Pour l'importer il faut utiliser la déclaration suivante :

local socket = require("socket") 
-- remplacer serial par le name dans le fichier de configuration

Configuration

Le module socket nécessite une configuration spécifique pour fonctionner. Cette configuration est définie dans le fichier de configuration de l'agent.

Pour la configuration voici un exemple de toutes les options possibles :

iot:
  modules:
    socket: # module serial
      - name: socket1 # nom du module
        address: "127.0.0.1"
        port: 8080 # port

Détails de la configuration

  • name : Nom du module. Il doit être unique et ne pas contenir d'espaces ou de caractères spéciaux.
  • address : Adresse IP à utiliser.
  • port : Port à utiliser. Il doit être au format 8080 ou 80 (pour HTTP).

Fonctions Lua

socket.connect()

Etablit une connexion avec le socket configuré.

  • Retour :
  • true si la connexion est réussie.
  • En cas d'échec, retourne nil suivi d'un message d'erreur.
local socket = require("socket1")

local status, err = socket.connect()
if not status then
    print("Erreur lors de la connexion au socket : " .. err)
else
    print("Connexion réussie au socket.")
end

socket.disconnect()

Déconnecte le socket configuré.

  • Retour :
  • true si la déconnexion est réussie.
  • En cas d'échec, retourne nil suivi d'un message d'erreur.
local socket = require("socket1")

local status, err = socket.disconnect()
if not status then
    print("Erreur lors de la déconnexion du socket : " .. err)
else
    print("Déconnexion réussie du socket.")
end

socket.send(data)

Envoie des données au socket configuré.

  • Paramètres :
  • data (string) : Les données à envoyer au socket.
  • Retour :
  • true si l'envoi est réussi.
  • En cas d'échec, retourne nil suivi d'un message d'erreur.
local socket = require("socket1")

local data = "Hello, World!"
local status, err = socket.send(data)
if not status then
    print("Erreur lors de l'envoi des données au socket : " .. err)
else
    print("Données envoyées avec succès au socket.")
end

socket.receive()

Lit des données du socket configuré.

  • Retour :
  • Les données lues sous forme de chaîne de caractères, ou un message d'erreur en cas d'échec.
local socket = require("socket1")

local data, err = socket.receive()
if err then
    print("Erreur lors de la lecture des données du socket : " .. err)
else
    print("Données lues depuis le socket : " .. data)
end

Champs Lua associés

  • socket.name : Retourne le nom de l'instance socket.
  • socket.type : Retourne le type du module (ici, socket1).