Efl.Net.Dialer.Websocket (class)

Description

WebSocket Dialer (Client).

The WebSocket Protocol (https://tools.ietf.org/html/rfc6455) is a message-based protocol over HTTP, this allows it to leverage on authentication, cookies, proxies and SSL/TLS.

Although it uses the HTTP dialer, it's not a subclass and thus not all HTTP features are exposed as the WebSocket has strict requirements that must be respected.

If the proxy is NULL (default), then the system proxy will be used. On UNIX that's the environment variable http_proxy (or 'all_proxy') is used if the given address doesn't match no_proxy patterns. To disable the proxy use an empty string. If provided, the proxy must be one of the following protocols:

- http://username:password@proxyserver:port - http://username@proxyserver:port - http://proxyserver:port - http://proxyserver (default port 1080) - socks5://username:password@proxyserver:port (SOCKSv5) - socks5h://username@proxyserver:port (let socks server to resolve domain) - socks5://proxyserver:port - socks5://proxyserver (default port 1080) - socks4a://proxyserver:port (SOCKSv4 and let socks server to resolve domain) - socks4://proxyserver:port (SOCKSv4)

Since 1.19

Inheritance

Efl.Loop.Consumer (class)Efl.Object (class)

Full hierarchy

Members

address_dial (get, set) protected set [Overridden from Efl.Net.Dialer]

Returns the address given to Efl.Net.Dialer.dial.
const char *efl_net_dialer_address_dial_get(const Eo *obj);
void efl_net_dialer_address_dial_set(Eo *obj, const char *address);


address_local (get, set) protected set [Overridden from Efl.Net.Socket]

The local address, similar to getsockname().
const char *efl_net_socket_address_local_get(const Eo *obj);
void efl_net_socket_address_local_set(Eo *obj, const char *address);


address_remote (get, set) protected set [Overridden from Efl.Net.Socket]

The remote address, similar to getpeername().
const char *efl_net_socket_address_remote_get(const Eo *obj);
void efl_net_socket_address_remote_set(Eo *obj, const char *address);


allow_redirects (get, set)

Allows HTTP redirects to be followed.
Eina_Bool efl_net_dialer_websocket_allow_redirects_get(const Eo *obj);
void efl_net_dialer_websocket_allow_redirects_set(Eo *obj, Eina_Bool allow_redirects);


authentication (get, set)

HTTP authentication to use.
void efl_net_dialer_websocket_authentication_get(const Eo *obj, const char **username, const char **password, Efl_Net_Http_Authentication_Method *method, Eina_Bool *restricted);
void efl_net_dialer_websocket_authentication_set(Eo *obj, const char *username, const char *password, Efl_Net_Http_Authentication_Method method, Eina_Bool restricted);


binary_send

Sends a binary blob (opcode=0x2) to the server.
void efl_net_dialer_websocket_binary_send(Eo *obj, const Eina_Slice blob);


can_read (get, set) protected set [Overridden from Efl.Io.Reader]

If true will notify Efl.Io.Reader.read can be called without blocking or failing.
Eina_Bool efl_io_reader_can_read_get(const Eo *obj);
void efl_io_reader_can_read_set(Eo *obj, Eina_Bool can_read);


can_write (get, set) protected set [Overridden from Efl.Io.Writer]

If true will notify Efl.Io.Writer.write can be called without blocking or failing.
Eina_Bool efl_io_writer_can_write_get(const Eo *obj);
void efl_io_writer_can_write_set(Eo *obj, Eina_Bool can_write);


close [Overridden from Efl.Io.Closer]

Closes the Input/Output object.
Eina_Error efl_io_closer_close(Eo *obj);


close_on_destructor (get, set) [Overridden from Efl.Io.Closer]

If true will automatically close() on object destructor.
Eina_Bool efl_io_closer_close_on_destructor_get(const Eo *obj);
void efl_io_closer_close_on_destructor_set(Eo *obj, Eina_Bool close_on_destructor);


close_on_exec (get, set) [Overridden from Efl.Io.Closer]

If true will automatically close resources on exec() calls.
Eina_Bool efl_io_closer_close_on_exec_get(const Eo *obj);
Eina_Bool efl_io_closer_close_on_exec_set(Eo *obj, Eina_Bool close_on_exec);


close_request

Requests (opcode=0x8) the server to terminate the connection.
void efl_net_dialer_websocket_close_request(Eo *obj, Efl_Net_Dialer_Websocket_Close_Reason reason, const char *message);


closed (get, set) [Overridden from Efl.Io.Closer]

If true will notify object was closed.
Eina_Bool efl_io_closer_closed_get(const Eo *obj);
Eina_Bool efl_io_closer_closed_set(Eo *obj, Eina_Bool is_closed);


connected (get, set) protected set [Overridden from Efl.Net.Dialer]

Returns whenever the socket is connected or not.
Eina_Bool efl_net_dialer_connected_get(const Eo *obj);
void efl_net_dialer_connected_set(Eo *obj, Eina_Bool connected);


constructor [Overridden from Efl.Object]

Call the object's constructor.
Efl_Object *efl_constructor(Eo *obj);


cookie_jar (get, set)

This property sets the filename where to read and write cookies.
const char *efl_net_dialer_websocket_cookie_jar_get(const Eo *obj);
void efl_net_dialer_websocket_cookie_jar_set(Eo *obj, const char *path);


destructor [Overridden from Efl.Object]

Call the object's destructor.
void efl_destructor(Eo *obj);


dial [Overridden from Efl.Net.Dialer]

Dials to the remote peer.
Eina_Error efl_net_dialer_dial(Eo *obj, const char *address);


eos (get, set) protected set [Overridden from Efl.Io.Reader]

If true will notify end of stream.
Eina_Bool efl_io_reader_eos_get(const Eo *obj);
void efl_io_reader_eos_set(Eo *obj, Eina_Bool is_eos);


ping

Sends a PING (opcode=0x9) to the server.
void efl_net_dialer_websocket_ping(Eo *obj, const char *reason);


proxy (get, set) [Overridden from Efl.Net.Dialer]

Controls/retrieves if the dialer should use a proxy.
const char *efl_net_dialer_proxy_get(const Eo *obj);
void efl_net_dialer_proxy_set(Eo *obj, const char *proxy_url);


read [Overridden from Efl.Io.Reader]

Reads data into a pre-allocated buffer.
Eina_Error efl_io_reader_read(Eo *obj, Eina_Rw_Slice rw_slice);


request_header_add

Adds a HTTP request header 'key: value'.
void efl_net_dialer_websocket_request_header_add(Eo *obj, const char *key, const char *value);


request_headers_clear

Clears all request headers.
void efl_net_dialer_websocket_request_headers_clear(Eo *obj);


request_headers_get

Returns an iterator to the key-value pairs for request headers
Eina_Iterator *efl_net_dialer_websocket_request_headers_get(Eo *obj);


request_protocol_add

Adds a new WebSocket protocol to the request.
void efl_net_dialer_websocket_request_protocol_add(Eo *obj, const char *protocol);


request_protocols_clear

Clears all request protocols
void efl_net_dialer_websocket_request_protocols_clear(Eo *obj);


request_protocols_get

Returns an iterator to the requested WebSocket protocols
Eina_Iterator *efl_net_dialer_websocket_request_protocols_get(Eo *obj);


response_protocols_get

Returns an iterator to the server-replied (response) WebSocket protocols it supports
Eina_Iterator *efl_net_dialer_websocket_response_protocols_get(Eo *obj);


streaming_mode (get, set)

Configures how to map streaming APIs to WebSocket.
Efl_Net_Dialer_Websocket_Streaming_Mode efl_net_dialer_websocket_streaming_mode_get(const Eo *obj);
void efl_net_dialer_websocket_streaming_mode_set(Eo *obj, Efl_Net_Dialer_Websocket_Streaming_Mode streaming_mode);


text_send

Sends an UTF-8 TEXT (opcode=0x1) to the server.
void efl_net_dialer_websocket_text_send(Eo *obj, const char *text);


timeout_dial (get, set) [Overridden from Efl.Net.Dialer]

The timeout in seconds to use for dialing/connecting.
double efl_net_dialer_timeout_dial_get(const Eo *obj);
void efl_net_dialer_timeout_dial_set(Eo *obj, double seconds);


user_agent (get, set)

The User-Agent to specify.
const char *efl_net_dialer_websocket_user_agent_get(const Eo *obj);
void efl_net_dialer_websocket_user_agent_set(Eo *obj, const char *user_agent);


write [Overridden from Efl.Io.Writer]

Writes data from a pre-populated buffer.
Eina_Error efl_io_writer_write(Eo *obj, Eina_Slice slice, Eina_Slice *remaining);


Inherited

Efl.Loop.Consumer
loop (get) The loop to which this object belongs to.
parent (get, set) The parent of an object.
Efl.Object
allow_parent_unref (get, set) Allow an object to be deleted by unref even if it has a parent.
children_iterator_new Get an iterator on all childrens
comment (get, set) A human readable comment for the object
composite_attach Make an object a composite object of another.
composite_detach Detach a composite object from another object.
composite_part_is Check if an object is part of a composite object.
debug_name_override Build a read-only name for this object used for debugging.
del Unrefs the object and reparents it to NULL.
event_callback_forwarder_add Add an event callback forwarder for an event and an object.
event_callback_forwarder_del Remove an event callback forwarder for an event and an object.
event_callback_stop Stop the current callback call.
event_freeze Freeze events of object.
event_freeze_count (get) Return freeze events of object.
class event_global_freeze Freeze events of object.
class event_global_freeze_count (get) Return freeze events of object.
class event_global_thaw Thaw events of object.
event_thaw Thaw events of object.
finalize Called at the end of efl_add. Should not be called, just overridden.
finalized (get) True if the object is already finalized, otherwise false.
name (get, set) The name of the object.
name_find Find a child object with the given name and return it.
provider_find Searches upwards in the object tree for a provider which knows the given class/interface.

Events

closed,reason

Received a request to close the connection. It may be a reply/confirmation from a local request, see Efl.Net.Dialer.Websocket.close_request, or some server-generated reason. After this point, no more messages are allowed to be sent and no more will be received. Efl.Io.Closer.close will be called.
EFL_NET_DIALER_WEBSOCKET_EVENT_CLOSED_REASON(Efl_Net_Dialer_Websocket_Closed_Reason)


message,binary

Received a binary message (opcode=0x2)
EFL_NET_DIALER_WEBSOCKET_EVENT_MESSAGE_BINARY(const Eina_Slice *)


message,text

Received a text string message (opcode=0x1)
EFL_NET_DIALER_WEBSOCKET_EVENT_MESSAGE_TEXT(const char *)


pong

Received a pong (opcode=0xA) with optional message/reason
EFL_NET_DIALER_WEBSOCKET_EVENT_PONG(const char *)


Inherited

Efl.Io.Closer
closed Notifies closed, when property is marked as true
Efl.Io.Reader
can_read,changed Notifies can_read property changed.
eos Notifies end of stream, when property is marked as true.
Efl.Io.Writer
can_write,changed Notifies can_write property changed.
Efl.Net.Dialer
connected Notifies the socket is connected to the remote peer.
error Some error happened and the socket stopped working.
resolved Notifies Efl.Net.Dialer.address_dial was resolved to Efl.Net.Socket.address_remote.
Efl.Object
callback,add A callback was added.
callback,del A callback was deleted.
del Object is being deleted.
destruct Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any dangling pointer.