Inherited description: This callback method is invoked by the %New() method to
provide notification that a new instance of an object is being created.
If this method returns an error then the object will not be created.
It is passed the arguments provided in the %New call.
When customizing this method, override the arguments with whatever variables and types you expect to receive from %New().
For example, if you're going to call %New, passing 2 arguments, %OnNew's signature could be:
Method %OnNew(dob as %Date = "", name as %Name = "") as %Status
If instead of returning a %Status code this returns an oref and this oref is a subclass of the current
class then this oref will be the one returned to the caller of %New method.
private method EstablishConnection() [ Language = objectscript ]
Makes the initial HTTP request and negotiates the upgrade to WebSocket protocol
Waits for data from the server. Returns 1 if the connection remains open, and 0 if the connection is closed or an error occurs.
The event listener will be notified upon receiving a message, or if the connection is closed or an error occurs.
@Argument pTimeout Timeout (in seconds) to wait to receive a message from the server.
Sends a ping frame to the server.
Returns $$$NetWebSocketErrPingTimeout if the ping times out
Returns $$$NetWebSocketErrPongInvalid if the pong response is not equal to pMessage
Otherwise, returns $$$OK
@Argument pMessage Message to send with the ping
@Argument pFragmentSize Timeout (in seconds) to wait to receive a "pong" back from the server.
method Pong(pMessage As %String) as %Status [ Language = objectscript ]
Sends an *unsolicited* pong frame to the server.
@Argument pMessage Message to send with the pong
method Send(pContent, pFragmentSize As %Integer = 0) as %Status [ Language = objectscript ]
Sends a binary or character stream, dynamic object, or string to the server.
@Argument pContent Binary or character stream, dynamic object, or string to the server.
@Argument pFragmentSize Maximum size (in bytes) to send in a single frame; 0 indicates no maximum.
private method ValidateProtocolSwitch() as %Status [ Language = objectscript ]
Ensures response headers are valid for upgrading to web sockets