Problema Java

Iniciado por luismi_12, 14 Junio 2014, 09:52 AM

0 Miembros y 1 Visitante están viendo este tema.

luismi_12

Hola buenas, estoy haciendo un chat en java, pero tengo un problema, los mensajes solo se le muestran al usuario que se les manda, estoy usando javascript en el cliente y java en el servidor. Estoy enviando los datos al cliente por session, pero no consigo que se le manden a todos los usuarios.

NikNitro!

Estás usando sockets, supongo, no? Yo ahora mismo estoy haciendo uno de punto a punto en java (lo estoy subiendo a mi blog, en la firma :P).

Supongo que estarás probando en red local no? Sino tendrías que abrir puertos :P

luismi_12

Si estoy usando websocket, el servidor esta en java y el cliente en javascript, pero no se como hacer para que se mande a todos los usuarios, si supieras donde puedo ver un ejemplo o algo por el estilo, ya que buscando solo he conseguido liarme mas.

NikNitro!

Si quieres que se mande a varios usuarios a la vez necesitas usar sockets multicast y direcciones multicast

Salud

luismi_12

He estado mirando, que seria mas facil, implementar el servidor en java y el cliente en javascirpt, o usar node.js para el servidor

NikNitro!

La verdad es que node.js no se aún. Yo lo he hecho enteramente en Java (ahora quiero hacer un cliente en c++ para ver hasta donde pueden complementarse). Pero mi servidor es una raspberry con el servidor cargado en segundo plano, por lo que si (en tu caso) es un servicio de hosting gratuito, no te valdría.

Salud

luismi_12

Y para poder hacer un socket multicast con direcciones multicast como seria, la verdad yo quiero hacer un chat sencillo que el mensaje se mande a todos los usuarios es decir a un textarea.

NikNitro!

Las dos opciones que vi en su momento (y que estoy llevando adelante) son:

1º Que Java esté conectado a una Base de Datos. Se pueden enviar mensajes con nombre de usuario  receptor o una constante "remite". El cliente descargaría todos los mensajes de "remite" como si fuera un multicast. Todos podrían enviar y recibir a ese "remite" y formar un chat grupal.

2º: Cada cliente en Java es un servidor también. Es necesario abrir puertos. El socket que usa java en estos casos en el servidor es 'MulticastSocket'. El mensaje tendría que enviarse a una direccion de multicast (creo que de la 224.0.0.0 a la 239.255.255.255, en cualquier caso te vale con la 224.0.0.1, por ejemplo :p ). Cada cliente debería de conectarse (usando .joinGroup() a la misma dirección multicast para poder recibir.

Salud;)

luismi_12

Al final voy a optar por la base de datos ya que de los websocket por mucho que lo he mirado no tengo ni idea

NikNitro!

En ese caso tendrías que aprender a conectarte a una base de datos desde Java a la base de datos mediante PHP ;)