node-red-contrib-tcp-client-server-avd
v1.0.0
Published
Node-RED node voor TCP client en/of server functionaliteit
Downloads
77
Maintainers
Readme
Node-RED TCP Client/Server Node (AVD)
Een flexibele Node-RED node die functioneert als TCP client en/of TCP server, met uitgebreide configuratiemogelijkheden en foutafhandeling.
Installatie
Via npm (aanbevolen)
npm install node-red-contrib-tcp-client-server-avdHandmatige installatie
- Clone of download dit project
- Kopieer de map naar je Node-RED
nodesdirectory (meestal~/.node-red/nodes/) - Installeer dependencies:
cd ~/.node-red/nodes/node-red-contrib-tcp-client-server-avd
npm install- Herstart Node-RED
Functionaliteiten
TCP Client Mode
- Automatisch verbinden bij flow start (optioneel)
- Handmatig verbinden/verbreken via messages
- Automatische herconnectie met configureerbare instellingen
- Ondersteuning voor verschillende dataformaten (String, Buffer, JSON, Hex)
- Message delimiter ondersteuning voor message framing
- Keep-alive optie
TCP Server Mode
- Automatisch starten bij flow start (optioneel)
- Luisteren op geconfigureerde poort
- Meerdere gelijktijdige client verbindingen
- Unieke client identificatie
- Broadcast naar alle clients of verzenden naar specifieke client
- Zelfde dataformaat ondersteuning als client mode
Gecombineerde Mode
- Gebruik zowel client als server functionaliteit in één node
- Onafhankelijke configuratie voor beide modi
Gebruik
Basis Configuratie
- Sleep de node naar je flow
- Dubbelklik op de node om te configureren
- Selecteer de gewenste mode: TCP Client, TCP Server, of TCP Client & Server
- Configureer de instellingen volgens je behoeften
Client Mode - Verbinden
Automatisch verbinden:
- Zet "Auto Verbinden" aan
- De client verbindt automatisch bij flow start
Handmatig verbinden:
- Zet "Auto Verbinden" uit
- Stuur een message met
topic: "connect"naar de node
Verbinden verbreken:
- Stuur een message met
topic: "disconnect"naar de node
Server Mode - Server Beheer
Automatisch starten:
- Zet "Auto Start" aan
- De server start automatisch bij flow start
Handmatig starten:
- Zet "Auto Start" uit
- Stuur een message met
topic: "start"naar de node
Server stoppen:
- Stuur een message met
topic: "stop"naar de node
Message Formats
Input Messages (naar Node)
Client Mode
Verbinden:
{ topic: "connect" }Verbreken:
{ topic: "disconnect" }Data verzenden:
{
topic: "send",
payload: "data om te verzenden" // string, buffer, of object
}Als er geen topic is opgegeven, wordt de payload automatisch verzonden.
Server Mode
Server starten:
{ topic: "start" }Server stoppen:
{ topic: "stop" }Data verzenden naar specifieke client:
{
topic: "send",
clientId: "client-unique-id",
payload: "data om te verzenden"
}Data verzenden naar alle clients (broadcast):
{
topic: "broadcast",
payload: "data om te verzenden"
}Output Messages (van Node)
Client Mode
Verbindingsstatus:
{
topic: "status",
payload: "connected" | "disconnected" | "error",
status: "connected" | "disconnected" | "error",
error: "error message (indien van toepassing)"
}Ontvangen data:
{
topic: "data",
payload: "ontvangen data",
timestamp: "ISO timestamp"
}Server Mode
Server status:
{
topic: "status",
payload: "listening" | "stopped" | "error",
port: 1234,
error: "error message (indien van toepassing)"
}Client verbinding:
{
topic: "client/connected",
clientId: "unique-client-id",
remoteAddress: "client-ip",
remotePort: "client-port"
}Client verbreking:
{
topic: "client/disconnected",
clientId: "unique-client-id"
}Ontvangen data:
{
topic: "data",
payload: "ontvangen data",
clientId: "unique-client-id",
remoteAddress: "client-ip",
remotePort: "client-port",
timestamp: "ISO timestamp"
}Configuratie Opties
Client Mode
- Host: Server hostname of IP adres (standaard: "localhost")
- Port: Server poort nummer (standaard: 8080)
- IP Versie: IPv4 of IPv6 (standaard: IPv4)
- Auto Verbinden: Automatisch verbinden bij flow start (standaard: true)
- Herconnectie: Automatische herconnectie bij verbroken verbinding (standaard: true)
- Reconnect Interval: Tijd tussen reconnect pogingen in seconden (standaard: 5)
- Max Reconnect Pogingen: Maximum aantal reconnect pogingen (0 = oneindig, standaard: 0)
- Connection Timeout: Timeout voor connectiepogingen in seconden (standaard: 10)
- Input Format: Data formaat voor verzenden (String, Buffer, JSON, Hex String)
- Output Format: Data formaat voor ontvangen (String, Buffer, JSON, Hex String)
- Encoding: Character encoding voor String format (UTF-8, ASCII, Latin1, Base64)
- Message Delimiter: Optionele delimiter voor message framing (bijv.
\nof\r\n) - Keep-Alive: TCP keep-alive optie (standaard: false)
Server Mode
- Listen Port: Poort waarop de server luistert (standaard: 8080)
- Bind Address: IP adres om aan te binden (standaard: "0.0.0.0" = alle interfaces)
- IP Versie: IPv4 of IPv6 (standaard: IPv4)
- Auto Start: Automatisch starten bij flow start (standaard: true)
- Max Connections: Maximum aantal gelijktijdige verbindingen (0 = onbeperkt, standaard: 0)
- Connection Timeout: Timeout voor client verbindingen in seconden (standaard: 600)
- Input Format: Data formaat voor verzenden (String, Buffer, JSON, Hex String)
- Output Format: Data formaat voor ontvangen (String, Buffer, JSON, Hex String)
- Encoding: Character encoding voor String format (UTF-8, ASCII, Latin1, Base64)
- Message Delimiter: Optionele delimiter voor message framing (bijv.
\nof\r\n) - Keep-Alive: TCP keep-alive optie (standaard: false)
Status Weergave
De node toont verschillende status indicatoren:
Client Mode
- Groen (verbonden): Succesvol verbonden met server
- Rood (fout): Verbindingsfout of verbreken
- Grijs (niet verbonden): Niet verbonden
- Geel (verbinden): Verbinding wordt tot stand gebracht
Server Mode
- Groen (luisterend): Server luistert actief op poort
- Rood (gestopt/fout): Server is gestopt of fout opgetreden
- Blauw (actief): Server actief met X verbindingen
Voorbeelden
Voorbeeld 1: Basis TCP Client
Een eenvoudige TCP client die verbindt met een server en data verzendt/ontvangt.
Flow:
[Inject] → [TCP Client Node] → [Debug]Configuratie:
- Mode: TCP Client
- Host: localhost
- Port: 8080
- Auto Verbinden: aan
Voorbeeld 2: Basis TCP Server
Een TCP server die luistert op poort 8080 en data ontvangt van clients.
Flow:
[TCP Server Node] → [Debug]Configuratie:
- Mode: TCP Server
- Listen Port: 8080
- Auto Start: aan
Voorbeeld 3: Client met Reconnect
Een TCP client met automatische herconnectie.
Configuratie:
- Mode: TCP Client
- Host: 192.168.1.100
- Port: 8080
- Auto Verbinden: aan
- Herconnectie: aan
- Reconnect Interval: 5 seconden
- Max Reconnect Pogingen: 0 (oneindig)
Voorbeeld 4: Server met Meerdere Clients
Een TCP server die data ontvangt van meerdere clients en responses terugstuurt.
Flow:
[TCP Server Node] → [Function Node] → [TCP Server Node]Function Node code:
// Echo de data terug naar dezelfde client
msg.topic = "send";
msg.payload = "Echo: " + msg.payload;
return msg;Troubleshooting
Client kan niet verbinden
- Controleer of de server draait en bereikbaar is
- Controleer firewall instellingen
- Controleer host en port configuratie
- Bekijk de status van de node voor foutmeldingen
Server kan niet starten
- Controleer of de poort niet al in gebruik is
- Controleer of je rechten hebt om op de poort te luisteren (voor poorten < 1024 op Linux/Mac)
- Controleer firewall instellingen
- Bekijk de status van de node voor foutmeldingen
Data wordt niet correct ontvangen
- Controleer de Output Format configuratie
- Controleer de Encoding instelling
- Voor message framing, gebruik de Message Delimiter optie
- Voor binary data, gebruik Buffer format
Bekende Beperkingen
- TLS/SSL ondersteuning is nog niet geïmplementeerd (toekomstige versie)
- UDP protocol wordt niet ondersteund (alleen TCP)
- Rate limiting is nog niet beschikbaar
Licentie
MIT
Versie Geschiedenis
Versie 1.0.0
- Initiele release
- TCP Client functionaliteit
- TCP Server functionaliteit
- Gecombineerde mode
- String, Buffer, JSON, en Hex data formaten
- Automatische herconnectie
- Message delimiter ondersteuning
Ondersteuning
Voor vragen, problemen of suggesties, open een issue op de GitHub repository.
