tl; dr - preferisci sempre biblioteche gratuite per codificarti da solo (a meno che tu non abbia requisiti estremi)
Devo usare i socket Web di Mosquitto o collegare direttamente i client?
Quanto dura un pezzo di spago? (YMMV)
Posso solo parlare in generale, ma preferisco sempre le librerie wrapper ai socket grezzi (o, in effetti, alla codifica di tutto ciò che posso ottenere gratuitamente da una libreria).
Rendono la codifica più semplice e meno soggetta a errori. Si occupano di un sacco di pulizie domestiche e gestione degli errori, che è un codice che dovresti scrivere ed eseguire il debug tu stesso, dove una libreria è stata generalmente ben rivista e testata e viene utilizzata da migliaia di altri, tutti i quali segnalerà / risolverà i bug per te.
Inoltre, è meno codice da mantenere (e, possibilmente, porta), il che significa più tempo per sviluppare, testare e lucidare la tua app o passare a quella successiva.
L'unico sovraccarico è senza dubbio una chiamata di funzione, se si accetta che tutta quella bontà bibliotecaria (gestione degli errori, manutenzione dei tubi e simili) è qualcosa che si dovrebbe codificare per ottenere un software buono, stabile.
Se sei preoccupato per le prestazioni, basta profilo. Ma, a meno che il tuo socket non sia attivo centinaia di volte al secondo, non mi preoccuperei nemmeno.