A WebSocket kapcsolat egy közvetlen csatornát épít ki a böngésző egy lapján megjelenő weboldal és egy web szerveren futó programszál között.
A WebSocket támogatás a hbhttpd webszerverre épül.
Ez a kapcsolat lehetővé teszi a közvetlen adatcserét a programszál és az oldal JavaScript programja között. A weboldal a program képernyőjeként és billentyűzeteként viselkedik, mint egy terminál. A felhasználói felület mindent kihasználhat, amit a HTML lehetővé tesz, például képek, videók megjelenítése. A program módosítása nélkül lehetőség van a megjelenés teljes áttervezésére, különböző színvilág, logók és más nyelv alkalmazására.
Bármilyen operációs rendszeren és bármilyen hardveren lehet a felhasználói felület, ha van WebSocket-et támogató böngésző az eszközre.
A támogatás használatához a felhasználói programhoz kell szerkeszteni a
wbs.prg modult.
Feladata a kapcsolat felvétele a böngészővel, és az átvitt adatok fejlécének kezelése.
-
New( oConnect, cRequest, bTrace )Létrehoz egy objektumot és befejezi a kapcsolatfelvételt.
-
Status()Visszaadja a kapcsolat típusát
- 0 - nem WebSocket kérés volt
- 1 - érvényes WebSocket kapcsolat kiépült
-
Socket()Visszaadja a TCP socket-t
-
ErrorCode()Az utoljára elvégzett művelet hibakódját adja vissza.
-
ErrorMode( nMod )Beállítja a hibakezelés módját
- 0 - Az
ErrorCode()függvénnyel lehet lekérdezni a hibakódot - 1 - Hiba esetén
BREAKhívásaWebSocketErrorobjektummal
- 0 - Az
-
WriteRaw( cBuffer )A
cBufferblokk kiírása a WebSocket kapcsolatra. -
WriteTextBlock( cBuffer )A
cBuffertext módú fejlécének elkészítése és kiírása aWriteRaw()függvénnyel. -
WriteBinBlock( cBuffer )A
cBufferbináris módú fejlécének elkészítése és kiírása aWriteRaw()függvénnyel.Még nem láttam böngészőt, ami támogatta volna!
-
ReadRaw( nLength, /* @ */ cBuffer, nTimeout )Adott számú byte beolvasása a
cBuffer-be. -
ReadBlock( /* @ */ cBlock, nTimeout )Beolvas egy WebSocket blokkot.
A ws.js-ben lévő JavaScript programmal kommunikáló protokoll.
A WebSocket objektum a szülője.
-
New( oConnect, cRequest, bTrace )Létrehoz egy objektumot és befejezi a kapcsolatfelvételt.
-
Write( xMessage )Az
xMessagetömböthb_jsonEncode()paranccsal átalakítja és elküldi a JavaScript programnak. Ha azxMessagekarakteres változó, akkor változtatás nélkül küldi el. -
PageWrite( cName, hPar )A
tplkönyvtárban lévőcNamenevű template file-t feldolgozza és behelyettesíti ahParnevű hash tömbben lévő értékeket, majd elküldi aWrite()függvénnyel. -
PageParse( cName, hPar )A
tplkönyvtárban lévőcNamenevű template file-t feldolgozza és behelyettesíti ahParnevű hash tömbben lévő értékeket, majd visszaadja az eredményt egy karakteres stringben. -
PutFields( hPar )A
hParhash tömbben megadottID-értékpárok alapján átírja a weboldal adatait. Ha input vagy text típusú a HTML elem, akkor a value értékét cseréli le, ha egyéb, akkor az eleminnerHTMLtulajdonságát változtatja meg.wbs:PutFields( { "id1" => 23, "id2" => "hello" } )
-
InsertHTML( cId, cHTML )A
cId-ben megadott eleminnerHTMLtulajdonságát változtatja meg. -
SetFocus( cId )A
cId-ben megadott elemre teszi a fókuszt. -
SetSelection( cId, nStart, nEnd )A
cId-ben megadott input elemnStart-tólnEnd-ig tartó részének kijelölése. -
Set( cSearch, cName, cValue )A
cSearch-ban megadott CSS selector által kiválasztott elemekcNamenevű tulajdonságának acValueértékeket adja. -
SetStyle( cSearch, cName, cValue )A
cSearch-ban megadott CSS selector által kiválasztott elemekstyleelemecNamenevű tulajdonságának acValueértékeket adja. -
GetFields( nTimeout )Beolvas egy WebSocket blokkot és a megkapott értékeket egy hash tömbben adja vissza. Ha timeout-ra futott, akkor üres tömböt ad vissza.
-
WebRead( nTimeout, bTimeout )Felhasználói válaszra vár. A Harbour
READparancsának felel meg. Ha nincsbTiemoutmegadva, akkor aznTimeout-ban megadott idő letelte után visszatér egy üres hash többel akkor is ha nincs válasz. HanTimeout0 vagy nincs megadva akkor korlátlan ideig vár. HabTimeoutegy kódblokkot tartalmaz, akkornTimeoutidőnként meghívja ezt a kódblokkot. Ha a kódblokk egy hash tömbbel tér vissza akkor visszadja ezt a kódblokkot. -
isTimeout()Igazat ad vissza, ha az utolsó I/O művelet időtúllépéssel tért vissza.
-
isError()Igazat ad vissza, ha az utolsó I/O művelet során hiba történt.
-
isCommand()Igaz az értéke, ha van lenyomott gomb azonosító a visszakapott értékek között.
-
Command()A gombhoz rendelt parancsot adja vissza.
<button data-command="OK">OK</button>
Ha a
type=submitparaméter is meg van adva, akkor az összes input mezőt is elküldi, ami az aktuális formban van. Ha nincs form, akkor az oldalon lévő összes input mezőt elküldi.<form> <input text id=szöveg /> <button type="submit" data-command="OK">OK</button> </form>
-
Parameter()A gombhoz rendelt paramétert adja vissza.
<button data-command="skip" data-par="-1">Előző</button>
-
isFiles()Igaz az értéke, ha van feltöltött file.
-
Files()Egy tömböt ad vissza, ami minden feltöltött filehoz egy hash tömböt tartalmaz, amiben a következö adatok vannak:
- name = a file neve
- size = a file mérete
- data = a file tartalma base64 kódolással
- id = a mező ID-je
-
isFields()Igazat ad vissza, ha van input mező.
-
isField( cName )Igazat ad vissza, ha van
cNameazonosítójú input mező. -
Fields()Egy hash tömböt ad vissza, amely mező
ID-értékpárokat tartalmaz. -
FieldGet( cName, /* @ */ xVar, xDefault )A
cNamenevű mező értékét visszaadja azxVarváltozóban, ha nincs ilyen változó, akkor azxDefaultértéket adja vissza. -
Redirect( cLink )A aktuális weboldalt kicseréli a
cLinkcímű oldalra. -
InkeyOn( cId )Minden gombnyomást átküld, ha a
cIdnincs megadva, akkor az egész oldalon, hacIdmeg van adva, akkor csak az adott elemen. -
InkeyOff( cId )Kikapcsolja a gombok átküldését.