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)

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_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_on_invalidate (get, set) [Overridden from Efl.Io.Closer]

If true will automatically close() on object invalidate.
Eina_Bool efl_io_closer_close_on_invalidate_get(const Eo *obj);
void efl_io_closer_close_on_invalidate_set(Eo *obj, Eina_Bool close_on_invalidate);


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) [Overridden from Efl.Io.Closer]

Eina_Bool efl_io_closer_closed_get(const Eo *obj);


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]

Implement this method to provide optional initialization code for your object.
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]

Implement this method to provide deinitialization code for your object if you need it.
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);


invalidate [Overridden from Efl.Object]

Implement this method to perform special actions when your object loses its parent, if you need to.
void efl_invalidate(Eo *obj);


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
future_rejected Creates a new future that is already rejected to a specified error using the Efl.Loop_Consumer.loop.get.
future_resolved Creates a new future that is already resolved to a value.
loop (get)
parent (get, set) The parent of an object.
promise_new Create a new promise with the scheduler coming from the loop provided by this 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 children.
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.
event_callback_forwarder_del Remove an event callback forwarder for a specified event and object.
event_callback_forwarder_priority_add Add an event callback forwarder that will make this object emit an event whenever another object (source) emits it. The event is said to be forwarded from source to this object.
event_callback_stop Stop the current callback call.
event_freeze Freeze events of this object.
event_freeze_count (get)
static event_global_freeze Globally freeze events for ALL EFL OBJECTS.
static event_global_freeze_count (get)
static event_global_thaw Globally thaw events for ALL EFL OBJECTS.
event_thaw Thaw events of object.
finalize Implement this method to finish the initialization of your object after all (if any) user-provided configuration methods have been executed.
finalized (get)
invalidated (get)
invalidating (get)
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.
provider_register Will register a manager of a specific class to be answered by Efl.Object.provider_find.
provider_unregister Will unregister a manager of a specific class that was previously registered and answered by Efl.Object.provider_find.

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
dialer,connected Notifies the socket is connected to the remote peer.
dialer,error Some error happened and the socket stopped working.
dialer,resolved Notifies Efl.Net.Dialer.address_dial was resolved to Efl.Net.Socket.address_remote.
Efl.Object
del Object is being deleted. See Efl.Object.destructor.
destruct Object has been fully destroyed. It can not be used beyond this point. This event should only serve to clean up any reference you keep to the object.
invalidate Object is being invalidated and losing its parent. See Efl.Object.invalidate.
noref Object has lost its last reference, only parent relationship is keeping it alive. Advanced usage.
ownership,shared Object has acquired a second reference. It has multiple owners now. Triggered whenever increasing the refcount from one to two, it will not trigger by further increasing the refcount beyond two.
ownership,unique Object has lost a reference and only one is left. It has just one owner now. Triggered whenever the refcount goes from two to one.