Thanks for the input Roberts, actually upgrade request fails for an http 
request made. For  ws:// request I am seeing connection failed. Do I need to 
add websocket-jetty related configuration in jetty.xml configuration file?

Can some please share a snippet of the configuration to be added ?

Thanks,
Yash Sharma

From: Lachlan Roberts <lach...@webtide.com>
Sent: Monday, March 11, 2024 12:52 PM
To: JETTY user mailing list <jetty-users@eclipse.org>
Cc: Yash Sharma <ysha...@egain.com>
Subject: EXTERNAL- Re: [jetty-users] websocket-jetty-server not able to upgrade 
request to websocket




CAUTION: This email originated from outside eGain. Do not click links or open 
attachments unless you can verify the sender and know the content is safe.



These two lines do exactly the same thing btw, so might want to remove one
factory.register(MySocket.class);
factory.addMapping("/", (req,res)->new MySocket());
Can you look at the HTTP response to the websocket upgrade request.

You also can enable Jetty debug logging for websocket and see exactly what is 
happening.


On Fri, Mar 8, 2024 at 5:14 PM Yash Sharma via jetty-users 
<jetty-users@eclipse.org<mailto:jetty-users@eclipse.org>> wrote:
Hi All,

I am trying to make websocket connection using html and javascript.
My client is as follows:
const socketUrl = "ws://host:port/example";
const socket = new WebSocket(socketUrl);[

And I have Servlet as follows
@WebServlet(name = "WebSocket Servlet", urlPatterns = { "/example" })
public class MyWSServlet extends JettyWebSocketServlet
{

@Override
public void configure(JettyWebSocketServletFactory factory) {
factory.setIdleTimeout(Duration.ofSeconds(1000));
factory.register(MySocket.class);
factory.addMapping("/", (req,res)->new MySocket());
}
}

@WebSocket
public class MySocket{
@OnWebSocketConnect
public void onConnect(Session session) {
System.out.println("Connect: " + session.getRemoteAddress());
}
}

I am using websocket-jetty-server dependency in pom.xml
When I try to hit the ws api, at server side I see that in upgradeRequest() 
validateNegotiation returns false and hence request is not upgraded to 
websocket.

As per chat gpt negotiateHeaders() is responsible to add Upgrade:websocket in 
request headers. But I do not see that happening in jetty.

I have attached stack trace for reference. Can someone please help me with this 
problem to establish a websocket connection using jetty?

The message that I see in browser console is “connection to 
'ws://host:port/example' failed:”


Thanks,
Yash Sharma
_______________________________________________
jetty-users mailing list
jetty-users@eclipse.org<mailto:jetty-users@eclipse.org>
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users
_______________________________________________
jetty-users mailing list
jetty-users@eclipse.org
To unsubscribe from this list, visit 
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to