Advertisement
lsevo

Untitled

Jan 8th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.15 KB | None | 0 0
  1. package spring.com.example.web.controller;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.IOException;
  5. import java.io.InputStreamReader;
  6. import java.io.ObjectOutputStream;
  7. import java.io.OutputStream;
  8. import java.io.PrintWriter;
  9. import java.io.UnsupportedEncodingException;
  10. import java.net.InetSocketAddress;
  11. import java.net.Socket;
  12. import java.net.SocketAddress;
  13.  
  14. import javax.servlet.ServletException;
  15. import javax.servlet.http.HttpServlet;
  16. import javax.servlet.http.HttpServletRequest;
  17. import javax.servlet.http.HttpServletResponse;
  18. import javax.servlet.http.HttpSession;
  19.  
  20. import org.springframework.beans.factory.annotation.Autowired;
  21. import org.springframework.context.annotation.Scope;
  22. import org.springframework.stereotype.Controller;
  23. import org.springframework.web.bind.annotation.RequestMapping;
  24. import org.springframework.web.bind.annotation.RequestMethod;
  25. import org.springframework.web.bind.annotation.RequestParam;
  26. import org.springframework.web.bind.annotation.ResponseBody;
  27. import org.springframework.web.bind.annotation.RestController;
  28.  
  29. import com.fasterxml.jackson.databind.ObjectMapper;
  30. import com.fasterxml.jackson.databind.ObjectWriter;
  31.  
  32. import spring.com.example.web.bean.BaseResponse;
  33. import spring.com.example.web.bean.SessionObject;
  34. import spring.com.example.web.bean.SessionSocket;
  35.  
  36. @Controller
  37. @Scope("session")
  38. @RequestMapping("/socket")
  39. public class HomeController extends HttpServlet {
  40.  
  41.     public static final String SERVER_URL = "thedevspot.xyz";
  42.     public static final int SERVER_PORT = 9999;
  43.  
  44.     private static final long serialVersionUID = -5655492414780908107L;
  45.  
  46.    
  47.  
  48.     @Autowired
  49.     private SessionSocket socket;
  50.  
  51.    
  52.     public HomeController() {
  53.         socket = null;
  54.        
  55.     }
  56.    
  57.     @ResponseBody
  58.     @RequestMapping(method = RequestMethod.GET)
  59.     public void doGet(@RequestParam(value = "message") String message, HttpSession session)
  60.             throws ServletException, IOException {
  61.        
  62.  
  63.     }
  64.  
  65.     @RequestMapping(value = "authorization", method = RequestMethod.GET)
  66.     public @ResponseBody BaseResponse getAuthorization(@RequestParam(value = "username") String username,
  67.             @RequestParam(value = "password") String password) {
  68.         BaseResponse response;
  69.         if (username == null || username.isEmpty() || password == null || password.isEmpty())
  70.             return response = new BaseResponse(500, null, "Username or password are empty\n");
  71.        
  72.             socket = new SessionSocket();
  73.             SocketAddress adress = new InetSocketAddress(SERVER_URL, SERVER_PORT);
  74.             try {
  75.                 socket.connect(adress);
  76.                
  77.                 ObjectOutputStream toServer = new ObjectOutputStream(socket.getOutputStream());
  78.                 System.out.println(socket.isConnected());
  79.             } catch (IOException e) {
  80.                 // TODO Auto-generated catch block
  81.                 e.printStackTrace();
  82.                 return response = new BaseResponse(600, null, "Failed to connect to server\n");
  83.             }
  84.  
  85.        
  86.  
  87.         return null;
  88.     }
  89.    
  90.     @RequestMapping(value = "/disconect", method = RequestMethod.GET)
  91.     public @ResponseBody BaseResponse Disconect(){
  92.         BaseResponse response;
  93.         try {
  94.             socket.close();
  95.         } catch (IOException e) {
  96.             // TODO Auto-generated catch block
  97.             e.printStackTrace();
  98.             System.out.println("Socket is alleary closed");
  99.         }
  100.         return response = new BaseResponse(200, null, "Disconnected from server\n");
  101.     }
  102.     @RequestMapping(value = "/recive", method = RequestMethod.GET)
  103.     public @ResponseBody void sendMessage(HttpServletRequest request, HttpServletResponse response)
  104.             throws UnsupportedEncodingException, IOException {
  105.         try {
  106.  
  107.             response.setContentType("text/event-stream, charset=UTF-8");
  108.             PrintWriter pw = response.getWriter();
  109.             System.out.println(socket);
  110.             if (!socket.isClosed() && socket.isConnected()) {
  111.                 System.out.println("socket is open");
  112.                 ObjectMapper mapper = new ObjectMapper();
  113.                 BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
  114.                 if(reader.ready()){
  115.                     BaseResponse recivedResponse = new ObjectMapper().readValue(reader, BaseResponse.class);
  116.                     pw.write("event:recived-message\n");
  117.                     pw.write("data:"+mapper.writeValueAsString(recivedResponse)+"\n\n");
  118.                 }
  119.                
  120.             }
  121.             pw.close();
  122.         } catch (Exception e) {
  123.             e.printStackTrace();
  124.         }
  125.     }
  126.  
  127. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement