A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programa Chat Programação com RMI. Programa Chat Este programa pretende permitir a conversa entre vários clientes, em computadores diferentes Este programa.

Apresentações semelhantes


Apresentação em tema: "Programa Chat Programação com RMI. Programa Chat Este programa pretende permitir a conversa entre vários clientes, em computadores diferentes Este programa."— Transcrição da apresentação:

1 Programa Chat Programação com RMI

2 Programa Chat Este programa pretende permitir a conversa entre vários clientes, em computadores diferentes Este programa pretende permitir a conversa entre vários clientes, em computadores diferentes Suporta múltiplas janelas de chat Suporta múltiplas janelas de chat É constituído por dois programas separados: É constituído por dois programas separados: O servidor, contem os métodos para fazer a gestão da lista de utilizadores ligados. O servidor, contem os métodos para fazer a gestão da lista de utilizadores ligados. O cliente, que contem os métodos para receber mensagens de outros utilizadores e do servidor. O cliente, que contem os métodos para receber mensagens de outros utilizadores e do servidor.

3 Servidor Main.java ServerInterface.java User.java ClientInterface.java Definição Implementação Definição

4 Servidor – Servidor – Main.java É o executável do lado do servidor. É o executável do lado do servidor. Tem a tabela users de utilizadores online. Tem a tabela users de utilizadores online. Implementa as funções definidas em ServerInterface.Java: Implementa as funções definidas em ServerInterface.Java: boolean addUser(User user) – Adiciona o utilizador á lista de utilizadores online (Hastable users), chama os métodos remotos sendSysMessage e listBoxUpdate de ClientInterface.java para informar que o utilizador ligou-se e enviar a lista actualizada de utilizadores ligados. boolean addUser(User user) – Adiciona o utilizador á lista de utilizadores online (Hastable users), chama os métodos remotos sendSysMessage e listBoxUpdate de ClientInterface.java para informar que o utilizador ligou-se e enviar a lista actualizada de utilizadores ligados. boolean removeUser(User user) – Remove o utilizador da lista, chama os métodos anteriores para informar que o utilizador desligou-se e enviar a lista actualizada de utilizadores ligados. boolean removeUser(User user) – Remove o utilizador da lista, chama os métodos anteriores para informar que o utilizador desligou-se e enviar a lista actualizada de utilizadores ligados. Hashtable getUserList() – Retorna a lista de utilizadores online Hashtable getUserList() – Retorna a lista de utilizadores online User getUser(String user) – Retorna o utilizador sabendo o seu nome User getUser(String user) – Retorna o utilizador sabendo o seu nome void setUser(User user) – Utilizado pelo addUser() para adicionar o utilizador void setUser(User user) – Utilizado pelo addUser() para adicionar o utilizador boolean hasUser(User user) - Utilizado pelo removeUser() boolean hasUser(User user) - Utilizado pelo removeUser() Contem o método Main() que cria um objecto do tipo Main, cria um registo no porto e faz o rebind desse objecto com o nome ServerInterface Contem o método Main() que cria um objecto do tipo Main, cria um registo no porto e faz o rebind desse objecto com o nome ServerInterface

5 Servidor – Servidor – ServerInterface.java Faz a definição dos métodos descritos anteriormente: Faz a definição dos métodos descritos anteriormente: boolean addUser(User user) boolean addUser(User user) boolean removeUser(User user) boolean removeUser(User user) Hashtable getUserList() Hashtable getUserList() User getUser(String user) User getUser(String user) void setUser(User user) void setUser(User user) boolean hasUser(User user) boolean hasUser(User user) Os dois primeiros métodos são chamados remotamente pelo cliente para este se adicionar ou remover da lista de utilizadores ligados e informar os outros utilizadores do seu estado (online ou offline). Os restantes métodos são chamados pelos primeiros. Os dois primeiros métodos são chamados remotamente pelo cliente para este se adicionar ou remover da lista de utilizadores ligados e informar os outros utilizadores do seu estado (online ou offline). Os restantes métodos são chamados pelos primeiros.

6 Servidor – User.java Permite criar utilizadores, contendo não só o seu nome mas também outros atributos, dois deles bastante importantes: Permite criar utilizadores, contendo não só o seu nome mas também outros atributos, dois deles bastante importantes: IP – endereço ip do utilizador IP – endereço ip do utilizador Port – porto de escuta Port – porto de escuta Os restantes dados são: Os restantes dados são: e avatar. e avatar. Contem procedimentos para retornar e definir os dados anteriores. Contem procedimentos para retornar e definir os dados anteriores.

7 Servidor – Servidor – ClientInterface.java Contem a definição dos métodos para o envio de texto para uma janela de chat, envio de mensagens para a janela Log e actualização da ListBox do programa. Contem a definição dos métodos para o envio de texto para uma janela de chat, envio de mensagens para a janela Log e actualização da ListBox do programa. void sendMessage(User user, String msg) – Executado remotamente pelo cliente user para enviar a mensagem msg ao cliente local void sendMessage(User user, String msg) – Executado remotamente pelo cliente user para enviar a mensagem msg ao cliente local void sendSysMessage(User user, String msg) – Utilizado remotamente pelo servidor para enviar uma mensagem para a janela principal do cliente local. void sendSysMessage(User user, String msg) – Utilizado remotamente pelo servidor para enviar uma mensagem para a janela principal do cliente local. void listBoxUpdate(Hashtable si) – Utilizado remotamente pelo servidor para actualizar a lista de utilizadores contida na janela chat principal do cliente local. void listBoxUpdate(Hashtable si) – Utilizado remotamente pelo servidor para actualizar a lista de utilizadores contida na janela chat principal do cliente local. void blockUser(User user) – Executado remotamente pelo cliente para bloquear o utilizador local user void blockUser(User user) – Executado remotamente pelo cliente para bloquear o utilizador local user

8 Cliente MainFrame.java ChatFrame.java ServerInterface.java Definição Implementação Definição ClientInterface.java User.java ClientInterfaceImplem.java

9 Cliente – Cliente – ClientInterfaceImplem.java Implementação dos procedimentos declarados em Implementação dos procedimentos declarados em ClientInterface.java. Contem a tabela UsersInChat com a lista de utilizadores que estão a falar com o utilizador local e em que janela chat. Contem a tabela BlockedUsers que contem a lista de utilizadores bloqueados. void sendMessage(User user, String msg) –Envia a mensagem msg do utilizador user ao utilizador local. Se o utilizador não existe em void sendMessage(User user, String msg) –Envia a mensagem msg do utilizador user ao utilizador local. Se o utilizador não existe em UsersInChat, adiciona-o e abre uma nova janela chat. Caso contrário envia o texto para a janela correspondente. void sendSysMessage(User user, String msg) void sendSysMessage(User user, String msg) void listBoxUpdate(Hashtable si) void listBoxUpdate(Hashtable si) void blockUser(User user) void blockUser(User user)

10 Cria um utilizador com o nome e avatar indicados no interface, com o IP local e porto disponível a partir do porto Executa remotamente o método addUser() Cliente – Cliente – MainFrame.java É o executável do lado do cliente. Abre a janela principal do programa. É o executável do lado do cliente. Abre a janela principal do programa. Usa a tabela UsersInChat que contem a lista de utilizadores Usa a tabela UsersInChat que contem a lista de utilizadores que estão a falar com o utilizador local e em que janela chat e a tabela BlockedUsers Se o utilizador seleccionado na lista Users Online existir em UsersInChat, foca a janela chat correspondente, caso contrário adiciona o utilizador á tabela e abre uma nova janela chat

11 Cliente - Cliente - MainFrame.java Avatar. Pode ser alterado fazendo um click com o botão esquerdo do rato. Indicador do estado dos utilizadores (ligados ou desligados do servidor). É alterado pelo servidor usando o SendSysMessage() Lista de utilizadores ligados. É alterada pelo servidor através do método ListBoxUpdate() Adiciona o utilizador seleccionado á lista BlockedUsers com o método blockUser() e envia uma mensagem para a caixa System Log

12 Cliente - ChatFrame Janela que mostra as mensagens recebidas e envia mensagens a outros utilizadores Janela que mostra as mensagens recebidas e envia mensagens a outros utilizadores Envia o texto utilizando o método SendMessage() do outro cliente Avatar dos dois utilizadores Texto adicionado pelo SendMessage()

13 Feito por: Feito por: Hugo Lobo, nº 7137 Hugo Lobo, nº 7137 Pedro Mateus, nº 8770 Pedro Mateus, nº 8770


Carregar ppt "Programa Chat Programação com RMI. Programa Chat Este programa pretende permitir a conversa entre vários clientes, em computadores diferentes Este programa."

Apresentações semelhantes


Anúncios Google