Bienvenido(a), Visitante. Favor de ingresar o registrarse.
Noviembre 21, 2008, 12:12:58
Inicio Ayuda Buscar Ingresar Registrarse
Noticias: Foro de Java, C++ y más.

Empieza una nueva comunidad de programación: Oneble ... es lo que tu quieras que sea

+  Foros Java y C/Linux
|-+  Programación
| |-+  Java J2SE
| | |-+  Duda con JSDT
« anterior próximo »
Páginas: [1] Enviar tema Imprimir
Autor Tema: Duda con JSDT  (Leído 86 veces)
jjvalverde
Newbie
*
Mensajes: 1


Ver Perfil


« en: Agosto 19, 2008, 07:54:38 »

  Hola a todos. Soy novato en Java y estoy haciendo un chat con middleware JSDT para una práctiva para la uni. Pero hay algunos procedimientos que no se donde colocarlos. Lo que tengo por ahora, lo único que hace es mostrar el nombre de quién se conecta y escribir directamente el mensaje de "Hola".
El código que tengo es éste:

Código:
package conexion;

import com.sun.media.jsdt.*;

import java.io.*;


public class ConectaAplicacion {
  private ConectaCliente client;
  private Session session =null;
  private Channel channel;
  private ConectaConsumidor cConsumer;
  private boolean connected = false;
 

public ConectaAplicacion (String name){

conecta(name);
enviaDatos("Hola");
while (true) {

}
   
}

private void enviaDatos (String message){
if (connected){
try
{
Data data = new Data(message);
data.setPriority(Channel.HIGH_PRIORITY);

channel.sendToAll(client, data);
}
catch (Exception cexcp)
{
System.out.println("Excepción enviando datos ");
    disconnect();
}

}
}
private void conecta(String name){
if (name == null)
throw new Error("ChatUser: connect - Need a non-null name to connect");

client = new ConectaCliente(name);
try
{
URLString url = URLString.createSessionURL(ConectaParametros.HOST_NAME,
    ConectaParametros.HOST_PORT, ConectaParametros.SESSION_TYPE,
    ConectaParametros.SESSION_NAME);

System.out.println("ConectaAplicacion: connect - Checking URL: " + url);

boolean sessionExists = false;
//intenta conectar
while (!sessionExists)
{
try
{
if (SessionFactory.sessionExists(url))
{
System.out.println("ConectaAplicacion: connect - Found session");
sessionExists = true; }
}
catch (NoRegistryException nrexcp)
{
System.out.println("ConectaAplicacion: connect - No registry (sleeping)");
Thread.sleep(1000);
}
catch (ConnectionException cexcp)
{
System.out.println("ConectaAplicacion: connect - Connection exception (sleeping)");
Thread.sleep(1000);
}


}
                /* Crear la sesion de comunicacion */

session = SessionFactory.createSession(client, url, true);
/* Crear el canal de comunicacion */
channel = session.createChannel(client, ConectaParametros.CHANNEL_NAME, true, true, true);
/* Crear el consumidor del canal */
cConsumer = new ConectaConsumidor(name);
channel.addConsumer(client, cConsumer);
connected = true;


}
catch (Exception ex){
  ex.printStackTrace();
}


}

private void disconnect(){
if (connected == false)
return;

//antes de borrar la session se deben borrar todos los listener.

try
{
channel.removeConsumer(client, cConsumer);
session.close(true);
}
catch (Exception excp)
{
System.err.println("ChatUser: disconnect - Exception: " + excp.getMessage());
excp.printStackTrace();
}

connected = false;

}
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("Aplicación para mostrar los pasos de conexión");
InputStreamReader ir = new InputStreamReader (System.in);
BufferedReader br = new BufferedReader (ir);
System.out.print("Introduce nombre de usuario cliente: ");
try {
String name = br.readLine();
new ConectaAplicacion (name);
System.out.println(name);
}catch (Exception e){
e.printStackTrace();
}

}

}

   Tengo que añadirle que me liste todos los clientes con listclientnames pero no sé ni dónde ni cómo ponerlo, solo que he probado mil maneras y ninguna me funciona.
   Otro procedimiento es mostrar un mensaje de información de cuando se conecta un usuario.
   Mostrar mensajes que recibe el usuario, (indicando cuando el mensaje es global o privado).
   Y por último enviar mensajes a todos los usuarios así como enviar mensajes privados a uno de dichos usuarios.


       Os agradecería vuestra ayuda y perdón por las molestias.

    Un saludo.
« Última modificación: Agosto 20, 2008, 09:47:49 por chuidiang » En línea
Páginas: [1] Enviar tema Imprimir 
« anterior próximo »
Ir a:  


Ingresar con nombre de usuario, contraseña y duración de la sesión

Powered by MySQL Powered by PHP Powered by SMF 1.1.5 | SMF © 2006-2007, Simple Machines LLC XHTML 1.0 válido! CSS válido!