Advertisement
Guest User

Untitled

a guest
Dec 15th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.01 KB | None | 0 0
  1. package ws;
  2.  
  3. import javasrc.RMIInterfaceClient;
  4. import javasrc.RMIInterfaceServer;
  5. import java.io.*;
  6. import java.rmi.*;
  7. import java.io.IOException;
  8. import java.io.Serializable;
  9. import java.rmi.NotBoundException;
  10. import java.rmi.RemoteException;
  11. import java.rmi.registry.LocateRegistry;
  12. import java.rmi.server.UnicastRemoteObject;
  13. import java.util.concurrent.atomic.AtomicInteger;
  14.  
  15. import javax.websocket.server.ServerEndpoint;
  16. import javax.websocket.OnOpen;
  17. import javax.websocket.OnClose;
  18. import javax.websocket.OnMessage;
  19. import javax.websocket.OnError;
  20. import javax.websocket.Session;
  21.  
  22. @ServerEndpoint(value = "/ws")
  23. public class WebSocketAnnotation extends UnicastRemoteObject implements RMIInterfaceClient ,Serializable{
  24. private static final AtomicInteger sequence = new AtomicInteger(1);
  25. private final String username;
  26. private Session session;
  27. private RMIInterfaceServer server;
  28.  
  29. public WebSocketAnnotation() throws RemoteException {
  30. super();
  31.  
  32. username = "User1";
  33. }
  34.  
  35. @OnOpen
  36. public void start(Session session) {
  37.  
  38. try {
  39.  
  40. this.session = session;
  41. String message = "*" + username + "* connected.";
  42. sendMessage(message);
  43.  
  44. server = (RMIInterfaceServer) LocateRegistry.getRegistry(7000).lookup("serverName");
  45. server.setWbi(this);
  46.  
  47. String not=server.searchForNotifications(this.username);
  48. if(not!=null){
  49. displayMessage(not);
  50. }
  51. //server.teste("feds"); // esta a funcionar . Nao esta quando de passa um referencia
  52.  
  53. } catch (RemoteException e) {
  54. e.printStackTrace();
  55. } catch (NotBoundException e) {
  56. e.printStackTrace();
  57. }
  58. }
  59.  
  60. @OnClose
  61. public void end() {
  62. // clean up once the WebSocket connection is closed
  63. }
  64.  
  65. @OnMessage
  66. public void receiveMessage(String message) {
  67. // one should never trust the client, and sensitive HTML
  68. // characters should be replaced with < > " &
  69. String upperCaseMessage = message.toUpperCase();
  70. sendMessage("[" + username + "] " + upperCaseMessage);
  71. }
  72.  
  73. @OnError
  74. public void handleError(Throwable t) {
  75. t.printStackTrace();
  76. }
  77.  
  78. private void sendMessage(String text) {
  79. // uses *this* object's session to call sendText()
  80. try {
  81. this.session.getBasicRemote().sendText(text);
  82. } catch (IOException e) {
  83. // clean up once the WebSocket connection is closed
  84. try {
  85. this.session.close();
  86. } catch (IOException e1) {
  87. e1.printStackTrace();
  88. }
  89. }
  90. }
  91.  
  92. public String printOk( ){
  93. sendMessage("ok");
  94. return "ok";
  95. }
  96.  
  97. public void displayMessage(String message) throws RemoteException {
  98. sendMessage(message);
  99. }
  100. public String getUsername(){
  101. return this.username;
  102. }
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement