Bonjour,
J'essai depuis quelques jours, sans grand succès, à faire fonctionner socket.io.js avec un moteur JEE en lieu et place de nodeJS.
Après avoir lu de la documentation, il s'avère que je n'arrive pas à passer le "handshake",
J'ai créé deux servlets :
- La première mappée sur "/socket.io/" pour la partie handshake en HTTP (GET) censé répondre avec le statut "OK" et la variable de config du type "SessionID:15000:10000:websocket".
- La deuxième permettant de gérer la partie WebSocket mappée sur /socketio/{version}/websocket/{sessionId}.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 @WebServlet(urlPatterns = { "/socket.io/" }) public class HTTP extends HttpServlet { private static final String CONFIG = ":15000:10000:websocket"; @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { System.out.println("HTTP " + req.getPathInfo()); try (PrintWriter pw = resp.getWriter()) { pw.print(req.getSession().getId() + CONFIG); } resp.setStatus(HttpServletResponse.SC_OK); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws IOException, ServletException { System.out.println("POST"); } }
Pouvez-vous m'aider et m'expliquer comment initier une connexion,Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 @ServerEndpoint(value = "/socket.io/1/websocket/{sessionId}") public class WEBSOCKET { @OnOpen public void open(Session session) { System.out.println("WEBSOCKET connect"); } @OnClose public void close(Session session) { System.out.println("WEBSOCKET close"); } @OnMessage public void message(Session session, String msg) { System.out.println(msg); } }
Merci d'avcance,
Cordialement,