TCP/IP y HTML


([N1] #include) #1

Leyendo algunos hilos por el foro, he creido entender que desde un hipervinculo HTML podemos conectar con V7 a traves del Objeto TCP/IP. Me he puesto a cacharrear un poco con el Tutor TCP/IP y he incrustado en la pagina principal un control HTML para tipear en la URL, “http:// IP:puerto_para_protocolo” como por ejemplo “http:// localhost : 6901”. De esta forma efectivamente se produce comunicación pero no paso datos. No se como pasar el dato que quiera a traves de la URL
¿Que expresion regular hay que emplear?
¿http:// IP : puerto ?VARIABLE_OBJETO_TCP-IP=dato?
¿http:// 127.0.0.1:6901?CADENA=HOLA?
¿http://localhost:6901?BYTE=6?

¿Que tipeo mal en el link?


([N1] cristianvg2003) #2

Hola Include hace poco me preguntaba lo mismo que tu y termine realizando un mini-webserver para comunicarse con un v7-Server, para esta implementación inicial solo devuelve datos en formato JSON y es compatible con JSONP para su uso en paginas estáticas y de otros dominios, espero que para la próxima semana liberare el proyecto como OpenSource en Github.

un Saludo


([N1] #include) #3

1 semana? too much time :frowning:
¿No nos podrias adelantar un ejemplo de explesion regular de un link HTML hacia el web service creado en V7 con TCP/IP?
Por cierto, ¿Por que GitHub? alli no he visto mucho de Velneo. Hazlo mejor en OpenApp.
Un Saludo y esperamos tu aportación.


([N1] cristianvg2003) #4

Hola,

Hola,

  1. en cuanto al link o request no tiene nada de especial usa el mismo formato http::/dominion.com/path/a/tu/recurso.(html | json | xml), asi que por ser velneo no tiene nada de especial, la idea es que sea un mini-webserver y funcione como lo estándar.

  2. Estará en Github, porque la lógica la escribí en JavaScript y la combinación de Git, Github y Github Issues es la mejor combinación a la hora compartir código fuente, poniendola como open app, las demas personas no podrán realizar contribuciones al código, no reportar bugs y yo no podré estar haciendo updates regulares.

un saludo


([N1] #include) #5

Gracias Cristian estaremos atentos a Github. Pero no acabo de tener claro el tema que exponía, ya que en realidad no necesito llegar al web service, es decir no preciso servir un recurso web, mi problema se encuentra un paso antes.
Intentaré explicarlo de nuevo, lo que pretendo es , desde el vClient por ejemplo utilizando la pantalla principal del tutor TCP/IP arrancamos los servicios que hay implementados en el tutor. En esa misma pantalla incrutamos un control HTML, y desde ese control HTML bien a traves de un hipervinculo o simplemente tipeando en la URL comunicar el objeto TCP/IP declarado en el proyecto con el control HTML. Lo que me interesa es el control de la “señal” que se dispara en la comunicación entre ambos objetos en la misma maquina.

Si hacemos esto que he dicho y tipeo en la URL por ejemplo "http://localhost:6901, (es decir atacando el puerto que esta a la escucha para el objeto TCP/IP) podemos comprobar como se establece comunicación y se dá de alta un registro con los datos de la comunicación que podemos ver en la cesta que hay en el tutor.

Es más en el objeto TCP/IP, tenemos los dos sub-objetos CLIENT y SERVER, si en cualquiera de ellos por ejemplo en el SERVER ponemos una parada en el código por ejemplo una pantalla emergente o disparamos un objeto, podreis comprobar como cada vez que tipeas en la URL o el link anterior en el comtrol HTML, cuando se produce la comunicación este trozo de código salta inmediantemente (por ejemplo un form), con lo cual la comunicación que busco entre HTML y TCP/IP (por lo tanto todo mi proyecto velneo) es “casi total”.

Y digo casi total por que lo que quisiera es poder reconocer esa señal, mandando información a traves del link. El objeto TCP/IP tiene variables que son a traves de las cuales pasa la información el Tutor TCP/IP, por ejemplo CADENA, BYTE , ENTERO etc… Por lo tanto mi pobre cabeza pensaba que si en el link pasamos el contenido de la variable podemos recogerla en el objeto TCP/IP, pero aqui me quedo atascado, en "http://localhost:6901, que más hay que tipear en el link para que reconozca correctamente la variable y su contenido, ¿alguien ha hecho esta prueba con el Tutor TCP/IP? ¿Alquien a intentado incrustar un control HTML y pasar una variable a traves del control HTML a l TCP/IP? Seria super interesante hacerlo.


([N1] cristianvg2003) #6

Hola Include,

ya veo cual es tu vacio, el asunto es así:

Es cierto en bajo nivel el navegador y el vserver se comunican mediante TCP y para esa comunicación quien inicia la comunicación que es el browser usa el protocolo HTTP (que correria encima del TCP), para esto el browser por medio de TCP manda un request HTTP que sería enviarle al server una cadena mas o menos asi:

GET /users/2/comments/show HTTP/1.1 \r\n
Content-Type: text/html\r\n
From: LocalHostr\n
etcr\n
etcr\n

De ahí en adelante esta solo en cuanto a parsear ese request y extractar lo que te es útil de ese request, por ejemplo si fueras a mandar variables puedes hacerlo como se hace con cualquier URL siguiendo el patro ?variable1=hola1&variable2=hola2

GET /users/2/comments/show?variable1=hola1&variable2=hola2 HTTP/1.1 \r\n

Ahora que tiene que ver esto con Cirrus.js ?

Lo que hará el mini-webserver que propongo es tomar es permitirte estructurar unas rutas, controladores y acciones hacia los cuales serán dirigidos los request http que le vayan llegando al vServer, para lo cual se tiene que descomponer ese request y estructurarlo en objetos JavaScript, básicamente te quita el trabajo de ese parseo, te da una estructura y te ayuda organizar el request HTTP que el navegador pueda interpretar.

esa es la idea,

un saludo


([N1] #include) #7

OK! Comprendido. Ese era el formato de cadena que me faltaba. Ahora a hacer pruebas!

Muchisimas gracias por el interes que me has prestado.

Un saludo.


([N1] #include) #8

Por cierto Cristian una aclaración. En el caso que he expuesto ¿no hay que tipear el puerto sobre el que hemos definido el objeto TCP/IP? ¿simplemente tipeamos en la URL, GET /users/2/comments/show?variable1=hola1&variable2=hola2 HTTP/1.1 \r\n?

P.D. Es que no estoy en el despacho y no puedo probarlo ahora.


([N1] cristianvg2003) #9

Hola si y no, depende de como hayas indicado el puerto: si levantaste el puerto 80 (por defecto para HTTP) no es necesario, pues el navegador “entiende” implicitamente que estas tirando el request a ese puerto, por lo que convierte tu http://www.google.com a http://www.google.com:80 por tí, si estas ejecutando el objeto TCP en otro puerto si tienes que indicarlo en URL

Un saludo,


([N1] #include) #10

He realizado pruebas con el TCP/IP envio de linea y todo OK!, la verdad es que se sincroniza perfectamente y puedes discriminar con que elemento del HTML has interactuado, justo lo que pretendía.
Gracias!