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".

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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");
	}
}
- La deuxième permettant de gérer la partie WebSocket mappée sur /socketio/{version}/websocket/{sessionId}.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
	}
}
Pouvez-vous m'aider et m'expliquer comment initier une connexion,

Merci d'avcance,

Cordialement,