Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package ws;
- import javasrc.RMIInterfaceClient;
- import javasrc.RMIInterfaceServer;
- import java.io.*;
- import java.rmi.*;
- import java.io.IOException;
- import java.io.Serializable;
- import java.rmi.NotBoundException;
- import java.rmi.RemoteException;
- import java.rmi.registry.LocateRegistry;
- import java.rmi.server.UnicastRemoteObject;
- import java.util.concurrent.atomic.AtomicInteger;
- import javax.websocket.server.ServerEndpoint;
- import javax.websocket.OnOpen;
- import javax.websocket.OnClose;
- import javax.websocket.OnMessage;
- import javax.websocket.OnError;
- import javax.websocket.Session;
- @ServerEndpoint(value = "/ws")
- public class WebSocketAnnotation extends UnicastRemoteObject implements RMIInterfaceClient ,Serializable{
- private static final AtomicInteger sequence = new AtomicInteger(1);
- private final String username;
- private Session session;
- private RMIInterfaceServer server;
- public WebSocketAnnotation() throws RemoteException {
- super();
- username = "User1";
- }
- @OnOpen
- public void start(Session session) {
- try {
- this.session = session;
- String message = "*" + username + "* connected.";
- sendMessage(message);
- server = (RMIInterfaceServer) LocateRegistry.getRegistry(7000).lookup("serverName");
- server.setWbi(this);
- String not=server.searchForNotifications(this.username);
- if(not!=null){
- displayMessage(not);
- }
- //server.teste("feds"); // esta a funcionar . Nao esta quando de passa um referencia
- } catch (RemoteException e) {
- e.printStackTrace();
- } catch (NotBoundException e) {
- e.printStackTrace();
- }
- }
- @OnClose
- public void end() {
- // clean up once the WebSocket connection is closed
- }
- @OnMessage
- public void receiveMessage(String message) {
- // one should never trust the client, and sensitive HTML
- // characters should be replaced with < > " &
- String upperCaseMessage = message.toUpperCase();
- sendMessage("[" + username + "] " + upperCaseMessage);
- }
- @OnError
- public void handleError(Throwable t) {
- t.printStackTrace();
- }
- private void sendMessage(String text) {
- // uses *this* object's session to call sendText()
- try {
- this.session.getBasicRemote().sendText(text);
- } catch (IOException e) {
- // clean up once the WebSocket connection is closed
- try {
- this.session.close();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- }
- public String printOk( ){
- sendMessage("ok");
- return "ok";
- }
- public void displayMessage(String message) throws RemoteException {
- sendMessage(message);
- }
- public String getUsername(){
- return this.username;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement