Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   Que me recomiendan hacer (https://www.clubdelphi.com/foros/showthread.php?t=77325)

edgwin 14-01-2012 19:14:31

Que me recomiendan hacer
 
Que tal amigos de foro.

Les explico que estoy haciendo para darme a entender mejor.

Estoy desarrollando una pagina en internet con "php" el cual es un directorio de restaurantes, cuando un restaurante se incribe puede dar de alta su menu y su zona de entrega, entre otras cosas (direccion, telefenos, etc ...). Ahora, un usuario puede entrar, ver el anuncio, ver el menu y poder hacer el pedido en linea. La manera de que el restaurante se entere de que tiene un pedido es mediante un programa cliente el cual va a recibir (ya sea mediante un servicio web, ftp o hasta una implementacion via correo) pero eso no es lo dificil. Lo que se me complica es lo siguiente: ¿Como va a saber la pagina que el restaurante tiene corriendo el programa cliente? (estamos de acuerdo que muchos servicios a domicilio lo prometen en 30 minutos o es gratis ... se imaginan en que bronca me meteria?) Entonces se me ocurrio que la pagina, antes de hacer el pedido, se comunique con el programa cliente, si este no esta activado, pues no pueden hacer el pedido y si lo esta, pues se procede. Ahora ... entonces se me ocurrio inscribir la PC del cliente a Dyndns y que la comunicacion sea mediante sockets, pero existen dos problemas ....

1) Los clientes que tienen internet por cable no van a poder utilizar ese servicio.
2) Si me sale un cliente del otro lado del pais, no le podre ofrecer el servicio (porque, por ahora no puedo visitar clientes en todo el pais).

Obviamente son clientes que se me pueden ir y eso es algo que nadie desea.

Entonces debe existir alguna manera de que el programa cliente este mandando su estatus al servidor y que este (la pagina web) lo vea y decida si puede hacer el pedido el cliente o no.

¿Alguien se le ocurre como?

Espero no haberlos abrumado mucho con mi explicacion.
Saludos!

ecfisa 14-01-2012 20:34:36

Hola edgwin.

Por favor, recuerda poner títulos que medianamente describan el problema que expones.

Saludos y gracias por tu colaboración.

DarkMan 15-01-2012 23:46:14

Cita:

Empezado por edgwin (Mensaje 422969)
...cuando un restaurante se incribe puede dar de alta su menu y su zona de entrega...

Es decir, la página web debe llevar una lista con todas las terminales clientes de cada restaurante disponibles en cada momento, y debe mantenerse actualizado periódicamente debido a esto que mencionas:

Cita:

Empezado por edgwin (Mensaje 422969)
...un usuario puede entrar, ver el anuncio, ver el menu y poder hacer el pedido en linea...


No lo veo complicado, de hecho es un mecanismo que se usa constantemente en telecomunicación. Si el servidor no está disponible, no puede servir nada. Matizando, si un cliente de un restaurante no está activo, no debe ser posible que una persona realice un pedido a dicho restaurante a través de tu plataforma.

Cita:

Empezado por edgwin (Mensaje 422969)
...La manera de que el restaurante se entere de que tiene un pedido es mediante un programa cliente el cual va a recibir (ya sea mediante un servicio web, ftp o hasta una implementacion via correo) ...

Te aconsejo que utilices un protocolo propio que implemente tus necesidades. No tienes necesidad de utilizar uno tan amplio en cuanto a funcionalidad como el FTP para el simple envío de un formulario, o un correo (este último no te lo aconsejo si te interesa el tiempo).
Además el hecho de que implementes tu propio protocolo te facilitará la tarea que planteas a continuación:

Cita:

Empezado por edgwin (Mensaje 422969)
...lo dificil. Lo que se me complica es lo siguiente: ¿Como va a saber la pagina que el restaurante tiene corriendo el programa cliente? (estamos de acuerdo que muchos servicios a domicilio lo prometen en 30 minutos o es gratis ... se imaginan en que bronca me meteria?) Entonces se me ocurrio que la pagina, antes de hacer el pedido, se comunique con el programa cliente, si este no esta activado, pues no pueden hacer el pedido y si lo esta, pues se procede...

En efecto para estos casos es necesario que haya consultas periódicas.


Cita:

Empezado por edgwin (Mensaje 422969)
Ahora ... entonces se me ocurrio inscribir la PC del cliente a Dyndns y que la comunicacion sea mediante sockets, pero existen dos problemas ....

No tienes por qué hacerlo de ese modo, el servidor debe ser tu página web, por lo tanto los clientes ,clientes son, y en consecuencia deben ser ellos los que notifiquen su presencia al servidor.
Las conexiones TCP/IP desde cada cliente(restaurante) hacia el servidor, en las cuales las conexiones se mantengan activas tanto tiempo como el restaurante esté disponible, sería la solución que estás buscando.
¿Que cómo implementarlo? tal vez te convenga que se ejecute un proceso/subproceso extra en el servidor que maneje estas conexiones, y que de alguna forma el servidor web se comunique con él para obtener el estado de cada cliente de restaurante.
En estos casos un VPS o un servidor dedicado vienen como anillo al dedo.

Cita:

Empezado por edgwin (Mensaje 422969)
1) Los clientes que tienen internet por cable no van a poder utilizar ese servicio.
2) Si me sale un cliente del otro lado del pais, no le podre ofrecer el servicio (porque, por ahora no puedo visitar clientes en todo el pais).

No entiendo muy bien estos dos puntos, pero siguiendo la filosofía que te aconsejo, el medio mediante el cuál se comuniquen es irrelevante.


Cita:

Empezado por edgwin (Mensaje 422969)
Entonces debe existir alguna manera de que el programa cliente este mandando su estatus al servidor y que este (la pagina web) lo vea y decida si puede hacer el pedido el cliente o no.

Bingo, te respondes tú solo.

Cita:

Empezado por edgwin (Mensaje 422969)
¿Alguien se le ocurre como?

Creo que ya te he respondido a esto.

Espero haberte ayudado.

Un saludo.

jejo1984 16-01-2012 14:02:08

Lo que se me ocurre es que simplemente que cuando un usuario haga un pedido automaticamente el sistema(cliente) te arroje un mensaje.

edgwin 16-01-2012 17:16:33

Gracias por sus respuestas.

Si, de hecho la solucion es implementar una comunicacion TCP/IP, de hecho voy a intentar hacerlo en lazarus de linux y tratar de ejecutar el script a ver que pasa....

Les cuento mis resultados.


La franja horaria es GMT +2. Ahora son las 22:04:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi