2012-05-16 17 views
5

Necesito un servidor nodejs conectado a una aplicación C#, no me gusta usar bibliotecas de terceros, así que he estado tratando de usar un TcpClient, el servidor es algo como esto :tcp cliente con socket.io (nodejs)

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

y en el proyecto de 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")); 
} 

por lo que he entendido en la "something" que debería escribir algo que podría desencadenar la "en ('conexión')" en el lado nodejs, soy Me falta algo?

PD: si usted sabe una buena biblioteca de terceros para lo que necesito que podría mencionar que

+2

no me gusta usar bibliotecas de terceros disfruto de reinventar la rueda. Ahí, FTFY;) –

+0

verdadero: P, pero me gusta tratar de hacer el más limpio posible, si, por ejemplo, mi problema es simplemente: "conexión: {datos: valor}", y funciona bien, no necesito bibliotecas de terceros ... pero si necesito escribir un libro, pensaría en bibliotecas de terceros;). Me gusta saber cómo podría funcionar antes de usar cosas de terceros. – Joaolvcm

+0

¿No es node.js un protocolo basado en HTTP? ¿O es compatible con la programación a nivel de socket? Si solo es HTTP, tendrá que enviar solicitudes HTTP en lugar de simplemente escribir datos en el socket. –

Respuesta

0

En realidad, el servidor ('conexión') debe disparar en el momento de construir su objeto TcpClient porque es cuando la conexión ocurre, en lugar de en el punto donde intentas enviar algunos datos.

+1

el 'MessageBox.Show (" connected ");' se activa cuando el servidor socket.io se está ejecutando, pero el 'on ('connetion')' no es – Joaolvcm