Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package spring.com.example.web.controller;
- import java.io.BufferedReader;
- import java.io.IOException;
- import java.io.InputStreamReader;
- import java.io.ObjectOutputStream;
- import java.io.OutputStream;
- import java.io.PrintWriter;
- import java.io.UnsupportedEncodingException;
- import java.net.InetSocketAddress;
- import java.net.Socket;
- import java.net.SocketAddress;
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Scope;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.bind.annotation.RestController;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.databind.ObjectWriter;
- import spring.com.example.web.bean.BaseResponse;
- import spring.com.example.web.bean.SessionObject;
- import spring.com.example.web.bean.SessionSocket;
- @Controller
- @Scope("session")
- @RequestMapping("/socket")
- public class HomeController extends HttpServlet {
- public static final String SERVER_URL = "thedevspot.xyz";
- public static final int SERVER_PORT = 9999;
- private static final long serialVersionUID = -5655492414780908107L;
- @Autowired
- private SessionSocket socket;
- public HomeController() {
- socket = null;
- }
- @ResponseBody
- @RequestMapping(method = RequestMethod.GET)
- public void doGet(@RequestParam(value = "message") String message, HttpSession session)
- throws ServletException, IOException {
- }
- @RequestMapping(value = "authorization", method = RequestMethod.GET)
- public @ResponseBody BaseResponse getAuthorization(@RequestParam(value = "username") String username,
- @RequestParam(value = "password") String password) {
- BaseResponse response;
- if (username == null || username.isEmpty() || password == null || password.isEmpty())
- return response = new BaseResponse(500, null, "Username or password are empty\n");
- socket = new SessionSocket();
- SocketAddress adress = new InetSocketAddress(SERVER_URL, SERVER_PORT);
- try {
- socket.connect(adress);
- ObjectOutputStream toServer = new ObjectOutputStream(socket.getOutputStream());
- System.out.println(socket.isConnected());
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- return response = new BaseResponse(600, null, "Failed to connect to server\n");
- }
- return null;
- }
- @RequestMapping(value = "/disconect", method = RequestMethod.GET)
- public @ResponseBody BaseResponse Disconect(){
- BaseResponse response;
- try {
- socket.close();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- System.out.println("Socket is alleary closed");
- }
- return response = new BaseResponse(200, null, "Disconnected from server\n");
- }
- @RequestMapping(value = "/recive", method = RequestMethod.GET)
- public @ResponseBody void sendMessage(HttpServletRequest request, HttpServletResponse response)
- throws UnsupportedEncodingException, IOException {
- try {
- response.setContentType("text/event-stream, charset=UTF-8");
- PrintWriter pw = response.getWriter();
- System.out.println(socket);
- if (!socket.isClosed() && socket.isConnected()) {
- System.out.println("socket is open");
- ObjectMapper mapper = new ObjectMapper();
- BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
- if(reader.ready()){
- BaseResponse recivedResponse = new ObjectMapper().readValue(reader, BaseResponse.class);
- pw.write("event:recived-message\n");
- pw.write("data:"+mapper.writeValueAsString(recivedResponse)+"\n\n");
- }
- }
- pw.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement