socket example javascript html5 node.js sockets tcpclient

javascript - socket.io client example



Conexión al socket TCP desde el navegador usando javascript (5)

Tengo una aplicación vb.net que abre un socket y lo escucha.

Necesito comunicarme a través de este socket a esa aplicación usando un javascript que se ejecuta en un navegador. Es necesario enviar algunos datos en este socket para que la aplicación que está escuchando en este socket pueda tomar esa información, hacer algunas cosas con algunas llamadas remotas y obtener más datos y volver a ponerlo en el socket que mi javascript necesita léalo e imprímalo en el navegador.

Lo he intentado, socket.io, websockify pero ninguno ha demostrado ser útil.

De ahí la pregunta, ¿es lo que intento incluso posible? ¿Hay alguna manera de que un javascript que se ejecuta en un navegador se pueda conectar a un zócalo tcp y enviar algunos datos y escuchar en él para obtener más respuesta de datos en el zócalo e imprimirlo en el navegador?

Si esto es posible, alguien puede señalarme en la dirección correcta que me ayudaría a establecer el objetivo.


En cuanto a su problema, actualmente tendrá que depender de XHR o websockets para esto.

Actualmente, ningún navegador popular ha implementado ninguna aplicación de sockets sin formato para javascript que le permita crear y acceder a sockets sin formato, pero un borrador para la implementación de la API de sockets sin formato en JavaScript está en proceso. Eche un vistazo a estos enlaces:
w3.org/TR/raw-sockets
https://developer.mozilla.org/en-US/docs/Web/API/TCPSocket

Chrome ahora tiene soporte para sockets RAW y TCP en sus API ''experimentales''. Estas funciones solo están disponibles para extensiones y, aunque están documentadas, están ocultas por el momento. Una vez dicho esto, algunos desarrolladores ya están creando proyectos interesantes para usarlo, como este cliente de IRC .

Para acceder a esta API, deberá habilitar el indicador experimental en el manifiesto de su extensión. Usar enchufes es bastante sencillo, por ejemplo:

chrome.experimental.socket.create(''tcp'', ''127.0.0.1'', 8080, function(socketInfo) { chrome.experimental.socket.connect(socketInfo.socketId, function (result) { chrome.experimental.socket.write(socketInfo.socketId, "Hello, world!"); }); });


La solución que realmente está buscando son los sockets web. Sin embargo, el proyecto Chrome ha desarrollado algunas nuevas tecnologías que son conexiones TCP directas TCP cromo


Puede usar HTML5 Web Sockets :

var connection = new WebSocket(''ws://IPAddress:Port''); connection.onopen = function () { connection.send(''Ping''); // Send the message ''Ping'' to the server };

http://www.html5rocks.com/en/tutorials/websockets/basics/

Su servidor también debe estar escuchando con un servidor WebSocket como pywebsocket, o puede escribir el suyo como se describe en Mozilla

Adicional:

Actualización: del borrador del W3C de enero de 2016:

Esto será posible a través de la interfaz del navegador como se muestra a continuación:

http://raw-sockets.sysapps.org/#interface-tcpsocket

https://www.w3.org/TR/tcp-udp-sockets/

navigator.tcpPermission.requestPermission({remoteAddress:"127.0.0.1", remotePort:6789}).then( () => { // Permission was granted // Create a new TCP client socket and connect to remote host var mySocket = new TCPSocket("127.0.0.1", 6789); // Send data to server mySocket.writeable.write("Hello World").then( () => { // Data sent sucessfully, wait for response console.log("Data has been sent to server"); mySocket.readable.getReader().read().then( ({ value, done }) => { if (!done) { // Response received, log it: console.log("Data received from server:" + value); } // Close the TCP connection mySocket.close(); } ); }, e => console.error("Sending error: ", e); );


Ver jsocket . No lo he usado yo mismo. Hace más de 3 años desde la última actualización (hasta el 26/6/2014).

* Utiliza flash :(

De la documentation :

<script type=''text/javascript''> // Host we are connecting to var host = ''localhost''; // Port we are connecting on var port = 3000; var socket = new jSocket(); // When the socket is added the to document socket.onReady = function(){ socket.connect(host, port); } // Connection attempt finished socket.onConnect = function(success, msg){ if(success){ // Send something to the socket socket.write(''Hello world''); }else{ alert(''Connection to the server could not be estabilished: '' + msg); } } socket.onData = function(data){ alert(''Received from socket: ''+data); } // Setup our socket in the div with the id="socket" socket.setup(''mySocket''); </script>


ws2s proyecto ws2s tiene como objetivo llevar el socket al navegador js. Es un servidor websocket que transforma websocket en socket.

diagrama esquemático de ws2s

muestra de código:

var socket = new WS2S("wss://ws2s.feling.io/").newSocket() socket.onReady = () => { socket.connect("feling.io", 80) socket.send("GET / HTTP/1.1/r/nHost: feling.io/r/nConnection: close/r/n/r/n") } socket.onRecv = (data) => { console.log(''onRecv'', data) }