• Places
    • Home
    • Graphs
    • Prefixes
  • Admin
    • Users
    • Settings
    • Plugins
    • Statistics
  • CPACK
    • Home
    • List packs
    • Submit pack
  • Repository
    • Load local file
    • Load from HTTP
    • Load from library
    • Remove triples
    • Clear repository
  • Query
    • YASGUI SPARQL Editor
    • Simple Form
    • SWISH Prolog shell
  • Help
    • Documentation
    • Tutorial
    • Roadmap
    • HTTP Services
  • Login

/usr/lib/swipl/library/ext/http/http/websocket.pl
All Application Manual Name SummaryHelp

  • http
    • http
      • http_unix_daemon.pl -- Run SWI-Prolog HTTP server as a Unix system daemon
      • thread_httpd.pl -- Threaded HTTP server
      • http_wrapper.pl
      • http_header.pl
      • http_stream.pl -- HTTP Streams
      • http_exception.pl -- Map Prolog exceptions to HTTP errors
      • http_path.pl -- Abstract specification of HTTP server locations
      • http_dispatch.pl -- Dispatch requests in the HTTP server
      • http_host.pl -- Obtain public server location
      • http_parameters.pl -- Extract parameters (GET and POST) from HTTP requests
      • http_client.pl -- HTTP client library
      • http_multipart_plugin.pl -- Multipart form-data plugin
      • http_hook.pl -- HTTP library hooks
      • html_write.pl -- Write HTML text
      • html_quasiquotations.pl -- HTML quasi quotations
      • mimetype.pl -- Determine mime-type for a file
      • html_head.pl -- Automatic inclusion of CSS and scripts links
      • http_server_files.pl -- Serve files needed by modules from the server
      • term_html.pl -- Represent Prolog terms as HTML
      • json.pl -- Reading and writing JSON serialization
      • http_open.pl -- HTTP client library
      • http_session.pl -- HTTP Session management
      • http_openid.pl -- OpenID consumer and server library
      • yadis.pl -- Yadis discovery
      • ax.pl -- Attribute Exchange library
      • http_authenticate.pl -- Authenticate HTTP connections using 401 headers
      • http_json.pl -- HTTP JSON Plugin module
      • http_dirindex.pl -- HTTP directory listings
      • js_write.pl -- Utilities for including JavaScript
      • js_grammar.pl -- JavaScript grammar
      • http_cors.pl -- Enable CORS: Cross-Origin Resource Sharing
      • json_convert.pl -- Convert between JSON terms and Prolog application terms
      • http_server.pl -- HTTP server library
      • http_dyn_workers.pl -- Dynamically schedule HTTP workers.
      • http_server_health.pl -- HTTP Server health statistics
      • hub.pl -- Manage a hub for websockets
      • websocket.pl -- WebSocket support
        • http_open_websocket/3
        • http_upgrade_to_websocket/3
        • ws_send/2
        • ws_receive/2
        • ws_receive/3
        • ws_close/3
        • ws_open/3
        • ws_property/2
        • ws_mask/1
      • http_log.pl -- HTTP Logging module
      • mimepack.pl -- Create a MIME message
 ws_open(+Stream, -WSStream, +Options) is det
Turn a raw TCP/IP (or any other binary stream) into a websocket stream. Stream can be an input stream, output stream or a stream pair. Options includes
mode(+Mode)
One of server or client. If client, messages are sent as masked.
buffer_size(+Count)
Send partial messages for each Count bytes or when flushing the output. The default is to buffer the entire message before it is sent.
close_parent(+Boolean)
If true (default), closing WSStream also closes Stream.
subprotocol(+Protocol)
Set the subprotocol property of WsStream. This value can be retrieved using ws_property/2. Protocol is an atom. See also the subprotocols option of http_open_websocket/3 and http_upgrade_to_websocket/3.

A typical sequence to turn a pair of streams into a WebSocket is here:

    ...,
    Options = [mode(server), subprotocol(chat)],
    ws_open(Input, WsInput, Options),
    ws_open(Output, WsOutput, Options),
    stream_pair(WebSocket, WsInput, WsOutput).
ClioPatria (version V3.1.1-51-ga0b30a5)