[uWSGI] Sharing connection to socket.io?

Roberto De Ioris roberto at unbit.it
Wed Jul 20 19:32:56 CEST 2011


Il giorno 20/lug/2011, alle ore 16.52, Szymon Kosok ha scritto:

> 2011/7/20 Roberto De Ioris <roberto at unbit.it>:
>> 
>> Il giorno 20/lug/2011, alle ore 16.24, Szymon Kosok ha scritto:
>> 
>>> Hi,
>>> 
>>> I've asked this question on StackOverflow but I think it's better ask
>>> here, so I copy&paste question.
>>> 
>>> We are trying to integrate Socket.io with our website. All messages
>>> are sent with uWSGI workers (Django). My problem is, that every
>>> message does all connection magic. It looks now like that:
>>> 
>>> Request -> HTTP Handshake with Socket.io -> Websocket connection ->
>>> Data send -> Connection close
>>> 
>>> And repeat for every message that need to be send to socket.io. It's
>>> far from ideal. Sometimes there are 3-4 messages queued / request. Is
>>> there way to share socket connection within requests with uWSGI? I
>>> don't need sharing between workers, just only within all requests
>>> processed by particular worker. Or maybe there are other solutions for
>>> that problem?
>>> 
>>> Best regards.
>>> 
>> 
>> Hi, can you post the code you use to connect to the socket.io server ?
> 
> Sure. :)
> 
> I'm using websocket-client
> http://pypi.python.org/pypi/websocket-client/0.4 and based on that
> module my class: http://dpaste.com/572402/ (because socket.io needs
> some funky handshake via http).
> _


Looks like you can make a connection at the startup of your app and reuse it in each requests, but you will need to send a 'keepalive/ping' packet to leave it open.

I have not tried it (i will try tomorrow and eventually i will send you an example) but you can create the connection in a @post_fork hook and leave it open with a @timer

http://projects.unbit.it/uwsgi/wiki/Decorators

(do not be afraid if you got nothing, it is an abstraction of other systems:
http://projects.unbit.it/uwsgi/wiki/SignalFramework
)



--
Roberto De Ioris
http://unbit.it



More information about the uWSGI mailing list