2012-05-16 24 views
5

Ho bisogno di un server nodejs connesso a un'applicazione C#, non mi piace usare librerie di terze parti, quindi ho provato ad usare un TcpClient, il server è qualcosa del genere :client tcp con socket.io (nodejs)

var io = require('socket.io').listen(8000); 
io.socket.on('connection',function(socket) 
{ 
console.log("connected"); 
} 

e sul progetto C#:

var client = new TcpClient(Server,8000); 
Socket s = client.Client; 
if (!s.Connected) 
{ 
    s.SetSocketOption(SocketOptionLevel.Socket, 
    SocketOptionName.ReceiveBuffer, 16384); 
    MessageBox.Show("disconnected"); 
} 
else 
{ 
    MessageBox.Show("connected"); 
    s.Send(Encoding.UTF8.GetBytes("something")); 
} 

per quello che ho capito sul "something" dovrei scrivere qualcosa che farebbe scattare il "on ('connessione')" sul lato nodejs, sono mi manca qualcosa?

PS: se si conosce un buon libreria di terze parti per quello che ho bisogno di te potrebbe parlarne

+2

non mi piace usare librerie di terze parti divertiti a reinventare la ruota. Lì, FTFY;) –

+0

true: P, ma mi piacerebbe provare a rendere il più pulito possibile, se per esempio il mio problema è solo: "connection: {data: value}", e funziona bene, non ho bisogno librerie di terze parti ... ma se ho bisogno di scrivere un libro, penserei alle librerie di terze parti;). Mi piacerebbe sapere come potrebbe funzionare prima di usare cose di terze parti. – Joaolvcm

+0

Non è node.js un protocollo basato su HTTP? O supporta la programmazione a livello di socket? Se è solo HTTP, dovrai inviare richieste HTTP anziché scrivere semplicemente dati sul socket. –

risposta

0

In realtà, il server sul ('connessione') dovrebbe sparare al momento si costruisce l'oggetto TcpClient perché in quel momento la connessione si verifica, piuttosto che nel punto in cui si tenta di inviare alcuni dati.

+1

il 'MessageBox.Show (" connected ");' si attiva quando il server socket.io è in esecuzione, ma 'on ('connetion')' non è – Joaolvcm