is it possible to send a data when a websocket connection is opened

19,423

Solution 1

There is no support for this in the protocol but you could fudge something yourself.

  • When your server completes a handshake, store the initial message you want to deliver to a client.
  • In your client's onopen function, send a "read initial message" request.
  • In your server, check that this client hasn't read its initial message; respond with the message; set a flag saying that the initial message has been sent.
  • Your client and server are both now free to send other messages.

Solution 2

Don't forget the query string. It's valid in WebSocket url.

new Websocket('ws://yoursite.com/path?a=1&b=2&c=3')

Then you can easily parse this url on server side to retrieve the data.

Share:
19,423
DPD
Author by

DPD

Updated on June 14, 2022

Comments

  • DPD
    DPD about 2 years

    I am implementing a Jetty Websocket servlet. When the server receives a new connection, I want to send a message that will be read by websocket's onopen function. I want this message to be sent only during the open and not using the regular connection.SendMessage() function. Is it possible to do that? and how?

  • DPD
    DPD almost 12 years
    Thanks, I was wondering if I may have missed something when searching online. I'll follow the approach you have suggested.
  • Chris Scott
    Chris Scott almost 7 years
    ya but how do you parse the url on the server side? where is the url itself made available?
  • jl.
    jl. over 6 years
    should probably also mention the option of a @PathParam... see this answer