Difference between revisions of "Websocket"
From Lianjapedia
Barrymavin (Talk | contribs) (→Example) |
Barrymavin (Talk | contribs) (→Methods) |
||
Line 54: | Line 54: | ||
|valign="top"|listen | |valign="top"|listen | ||
|valign="top"|port as Numeric[,ssl as logical] | |valign="top"|port as Numeric[,ssl as logical] | ||
− | |valign="top"|Listens on the specified port (server). | + | |valign="top"|Listens on the specified port (server). If ssl is true then use wss:/ to connect using secure connection on client else use ws:/ |
|- | |- | ||
|valign="top"|sendmessage | |valign="top"|sendmessage |
Revision as of 05:17, 23 August 2021
The Websocket class allows the application to handle asynchronous notifications from a remote server.
Note: property, method and event names should be referred to in lowercase in case-sensitive scripting languages.
Properties
This class supports the following properties:
Property | Access (R/RW) | Value | Description |
---|---|---|---|
onconnected | RW | Function | Function to call when socket connected |
ondisconnected | RW | Function | Function to call when socket disconnected |
onerror | RW | Function | Function to call when error occurred |
receivedmessage | RW | Function | Function to call when message received |
Methods
This class supports the following methods:
Method | Args | Description |
---|---|---|
connect | url as Character | Connects to the server |
disconnect | None | Disconnects from the server |
listen | port as Numeric[,ssl as logical] | Listens on the specified port (server). If ssl is true then use wss:/ to connect using secure connection on client else use ws:/ |
sendmessage | message as Character | Sends the specified message to the server (from client) |
sendmessage | websocketid as Numeric, message as Character | Sends the specified message to the specified web socket id (from server) |
Example
Server side Lianja/VFP Script (.prg):
// This is the callback for all messages received on the websocket. // // Arguments: // // wsid is the WebSocketID, you must specify this when sending a message back to the client using sendMessage // cMessage is the message. Use json_encode() and json_decode() to pass objects between the client and the server. // proc receivedMessage(wsid, cMessage) if cMessage = "quit" clear events endif lo.sendMessage(wsid, cMessage) endproc private lo = createObject("websocket") lo.receivedMessage = receivedMessage lo.listen(8004) // or listen(8004, true) for secure SSL connection wait events
Client side JavaScript function:
//////////////////////////////////////////////////////////////// // Event delegate for 'click' event function page1_section1_field1_click() { var lo = Lianja.createObject("websocket"); // declare callbacks lo.receivedMessage = function(cMessage) { console.log("Received message: " + cMessage); }; lo.onconnected = function() { console.log("onconnected()"); }; lo.ondisconnected = function() { console.log("ondisconnected()"); }; lo.onerror = function() { console.log("onerror()"); }; // connect to the remote WebSocket Server lo.connect("ws://localhost:8004"); // or lo.connect("wss://localhost:8004"); for a secure connection // messages are queued up until the websocket is connected. lo.sendMessage("Hello world"); lo.sendMessage("quit"); // disconnect is deferred until all messages are sent and received lo.disconnect(); return true; };