[Libwebsockets] Consistent delay of 20 seconds on mac for LWS_CALLBACK_CLIENT_WRITEABLE
tor at openproducts.com
Fri Sep 11 18:56:41 CEST 2015
A bit late on this matter but i think i'm seeing a similar problem. This
is however on a x64 Linux computer.
I have a similar setup. A separate thread service the websocket library
(libwebsocket_service) and i process incoming data in that context.
But when i want to send data not triggered by some received data i do
this in another thread that queues a message and then signal
libwebsockets, via libwebsocket_callback_on_writable_all_protocol, that
there is data to be sent.
The libwebsockets thread then sends the data when it revecives the
LWS_CALLBACK_CLIENT_WRITEABLE reason in its callback.
This setup seems to work ok but i run in to a similar problem to that
shyam describes below.
Data won't be be sent until the libwebsocket_service times out. I.e. if
i do a:
libwebsocket_service( context, 1000);
it takes a second before any message is sent. I.e. the same time as the
timeout is set to. If i change the timeout, the delay before sending a
message is also changed.
When reading up on the documentation i see a
Which indicates that it could interrupt the service routine?
Unfortunately the packaging of libsockets on my distro seems a bit old
and don't have that function call.
Am i doing things wrong here? Are there any other way to make the
service routine process the write request more immediately?
On ons, 2015-08-26 at 12:38 +0000, shyam goyal wrote:
> I am using Libwebsockets library for real time communication in one of
> my project. The library works extremely well on Windows and giving
> very good performance also. But I am seeing some problem on Mac. There
> is always a delay of 20 seconds before the socket is available again
> for writing on Mac. I have registered the callback and waiting for
> "LWS_CALLBACK_CLIENT_WRITEABLE" before writing a new message on the
> socket. I am not able to figure it out why there is this consistent
> delay of 20 seconds.
> I am using lot of threads in my application while using the
> LIBWebSockets. There is one thread running the service loop, one
> thread writing the messages to the socket and the last thread to
> process the messages received by the socket from the server.
> Please guide me how to resolve this. Do you think building the
> libwebsockets with LIBEV can be of some help?
> Shyam Sunder Goyal
> Libwebsockets mailing list
> Libwebsockets at ml.libwebsockets.org
Tor Krill <tor at openproducts.com> https://www.openproducts.com
+46 (707) 143631 Connected and Protected
More information about the Libwebsockets