Skip to content

Module Lua socket

Le module socket permet d'établir des connexions TCP vers des serveurs distants.

Import

local socket = require("socket1")

Configuration YAML

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

iot:
  modules:
    socket:
      - name: socket1           # nom unique du module
        address: "127.0.0.1"    # adresse IP du serveur
        port: 8080              # port TCP
        connect_timeout: 30     # timeout de connexion en secondes (défaut : 30)
        read_timeout: 30        # timeout de lecture en secondes (défaut : 30)

Détails de la configuration

  • name (string, requis) : Nom du module. Il doit être unique et ne pas contenir d'espaces ou de caractères spéciaux.
  • address (string, requis) : Adresse IP ou hostname du serveur distant.
  • port (integer, requis) : Port TCP du serveur.
  • connect_timeout (integer) : Timeout de connexion en secondes (défaut : 30).
  • read_timeout (integer) : Timeout de lecture en secondes (défaut : 30).

API Lua

Liste des fonctions

Fonction Signature Lua Rôle Retour
connect msg = socket.connect() Ouvre la connexion TCP. string (message de statut)
close msg = socket.close() Ferme la connexion TCP. string (message de statut)
send msg = socket.send(data) Envoie des données. string (message de statut)
receive data = socket.receive() Reçoit des données. string (données ou erreur)
Champs socket.name, socket.type Métadonnées du module.

socket.connect()

Établit une connexion TCP avec le serveur configuré.

  • Paramètres : Aucun
  • Retour :
  • Une chaîne de caractères indiquant le statut ("Connected successfully" ou message d'erreur).
local socket = require("socket1")

local msg = socket.connect()
print(msg)  -- "Connected successfully" ou erreur

socket.close()

Ferme la connexion TCP.

  • Paramètres : Aucun
  • Retour :
  • Une chaîne de caractères indiquant le statut ("Connection closed" ou message d'erreur).
local socket = require("socket1")

local msg = socket.close()
print(msg)  -- "Connection closed"

socket.send(data)

Envoie des données au serveur connecté.

  • Paramètres :
  • data (string) : Les données à envoyer.
  • Retour :
  • Une chaîne de caractères indiquant le statut ("Message sent successfully" ou message d'erreur).
local socket = require("socket1")

socket.connect()
local msg = socket.send("Hello, World!")
print(msg)  -- "Message sent successfully"
socket.close()

socket.receive()

Lit des données depuis la connexion TCP. La fonction bloque jusqu'à réception de données ou timeout (30 secondes par défaut).

  • Paramètres : Aucun
  • Retour :
  • Les données reçues sous forme de chaîne de caractères, ou un message d'erreur.
local socket = require("socket1")

socket.connect()
socket.send("GET / HTTP/1.0\r\n\r\n")
local data = socket.receive()
print(data)
socket.close()

Champs Lua associés

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