npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

node-red-contrib-tcp-client-server-avd

v1.0.0

Published

Node-RED node voor TCP client en/of server functionaliteit

Downloads

77

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-avd

Handmatige installatie

  1. Clone of download dit project
  2. Kopieer de map naar je Node-RED nodes directory (meestal ~/.node-red/nodes/)
  3. Installeer dependencies:
cd ~/.node-red/nodes/node-red-contrib-tcp-client-server-avd
npm install
  1. 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

  1. Sleep de node naar je flow
  2. Dubbelklik op de node om te configureren
  3. Selecteer de gewenste mode: TCP Client, TCP Server, of TCP Client & Server
  4. 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. \n of \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. \n of \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

  1. Controleer of de server draait en bereikbaar is
  2. Controleer firewall instellingen
  3. Controleer host en port configuratie
  4. Bekijk de status van de node voor foutmeldingen

Server kan niet starten

  1. Controleer of de poort niet al in gebruik is
  2. Controleer of je rechten hebt om op de poort te luisteren (voor poorten < 1024 op Linux/Mac)
  3. Controleer firewall instellingen
  4. Bekijk de status van de node voor foutmeldingen

Data wordt niet correct ontvangen

  1. Controleer de Output Format configuratie
  2. Controleer de Encoding instelling
  3. Voor message framing, gebruik de Message Delimiter optie
  4. 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.