@Filbert,

Am in the same exact spot using Django Channels with django-tenants. Did 
you find a way to identify the tenant?

Thanks.

On Tuesday, November 28, 2017 at 4:22:10 AM UTC+3, Filbert wrote:
>
> Sorry, yeah dig before I post :-|  Can create a class-based consumer and 
> use the message->headers->host. I'll get chest deep before ask another 
> question.
>
> On Monday, November 27, 2017 at 6:04:48 PM UTC-5, Andrew Godwin wrote:
>>
>> That would be correct (though please be aware Origin can be faked like 
>> host headers, so don't use it as the sole point of security).
>>
>> Is it not available via the headers list in the connect message?
>>
>> Andrew
>>
>> On Mon, Nov 27, 2017 at 2:58 PM, Filbert <[email protected]> wrote:
>>
>>> Thanks again. One last question, in order to "multi-tenant-ify" Channels 
>>> I think the challenge will be trickle the websocket "orgin" into the 
>>> consumer from Daphne somehow as it seems there is no way to know in a 
>>> consumer which tenant (unique domain) the message originated from. Without 
>>> the domain you can't establish the Postgres schema, without the schema you 
>>> have no tenant :-)
>>>
>>> Please confirm this would be the approach or whether I am wrong-headed 
>>> here.
>>> Thanks.
>>>
>>> On Sunday, November 26, 2017 at 9:58:58 AM UTC-5, Andrew Godwin wrote:
>>>>
>>>> I've never used attach-daemon so I can't help you there I'm afraid. As 
>>>> long as it does sensible process-management things it's probably alright?
>>>>
>>>> Andrew
>>>>
>>>> On Sat, Nov 25, 2017 at 5:17 PM, Filbert <[email protected]> wrote:
>>>>
>>>>> Andrew,
>>>>> Thanks for the response. Seeing that I am keeping uWSGI for the 
>>>>> non-websocket paths, any heartache with me starting daphne and the 
>>>>> consumers using uWSGI's attach-daemon? I do this with celery and it is a 
>>>>> convenient way to have everything for the App managed as a unit via a 
>>>>> single /etc/init (upstart) conf file.
>>>>> Thanks. 
>>>>>
>>>>> On Friday, November 24, 2017 at 7:10:29 PM UTC-5, Andrew Godwin wrote:
>>>>>>
>>>>>> Your assumptions all seem correct. Also consider that the security 
>>>>>> model of WebSockets is... interesting, so securing a multi-tenant setup 
>>>>>> is 
>>>>>> going to require a bit more work than you would merely doing the same 
>>>>>> for 
>>>>>> HTTP requests.
>>>>>>
>>>>>> There are other non-Channels options around if you want to look into 
>>>>>> them, but I suspect they'll all have similar architectural challenges.
>>>>>>
>>>>>> Andrew
>>>>>>
>>>>>> On Fri, Nov 24, 2017 at 3:09 PM, Filbert <[email protected]> wrote:
>>>>>>
>>>>>>> Running multi-tenant site using a fork of Django tenant schemas with 
>>>>>>> tens of web servers and thousands of tenants....
>>>>>>>
>>>>>>> Piloting a project to implement Channels for real-time 
>>>>>>> notifications, etc.
>>>>>>>
>>>>>>> I want to confirm these assumptions:
>>>>>>>
>>>>>>> 1. Channels really has no support for multi-tenant, I will have to 
>>>>>>> roll my own.
>>>>>>> 2. Since uWSGI is serving us well and (at this point) I wouldn't 
>>>>>>> trust Daphne to serve HTTP, I've got split paths in NGinx for uWSGI and 
>>>>>>> ASGI.
>>>>>>> 3. We are running RabbitMQ, so we have to cluster it and implement 
>>>>>>> channels using asgi_rabbitmq (Redis would just add yet another moving 
>>>>>>> part)
>>>>>>> 4. Plan on significant additional resource requirements on the web 
>>>>>>> server and serious scaling challenges.
>>>>>>>
>>>>>>> Are their any other non-Channels options, or is it the really the 
>>>>>>> only game in town?
>>>>>>>
>>>>>>> Thanks.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> -- 
>>>>>>> You received this message because you are subscribed to the Google 
>>>>>>> Groups "Django users" group.
>>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>>> send an email to [email protected].
>>>>>>> To post to this group, send email to [email protected].
>>>>>>> Visit this group at https://groups.google.com/group/django-users.
>>>>>>> To view this discussion on the web visit 
>>>>>>> https://groups.google.com/d/msgid/django-users/aae2725b-d873-40fd-ae09-d1668ab9e727%40googlegroups.com
>>>>>>>  
>>>>>>> <https://groups.google.com/d/msgid/django-users/aae2725b-d873-40fd-ae09-d1668ab9e727%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>>>> .
>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>
>>>>>>
>>>>>> -- 
>>>>> You received this message because you are subscribed to the Google 
>>>>> Groups "Django users" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send 
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at https://groups.google.com/group/django-users.
>>>>> To view this discussion on the web visit 
>>>>> https://groups.google.com/d/msgid/django-users/d4906dc8-040b-4ee0-b11d-a7cc918b9e5d%40googlegroups.com
>>>>>  
>>>>> <https://groups.google.com/d/msgid/django-users/d4906dc8-040b-4ee0-b11d-a7cc918b9e5d%40googlegroups.com?utm_medium=email&utm_source=footer>
>>>>> .
>>>>>
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>> -- 
>>> You received this message because you are subscribed to the Google 
>>> Groups "Django users" group.
>>> To unsubscribe from this group and stop receiving emails from it, send 
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/django-users.
>>> To view this discussion on the web visit 
>>> https://groups.google.com/d/msgid/django-users/4d7c94f1-81ad-4949-a987-35f45b188c2f%40googlegroups.com
>>>  
>>> <https://groups.google.com/d/msgid/django-users/4d7c94f1-81ad-4949-a987-35f45b188c2f%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/django-users.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/734af326-9f95-439e-983a-bc136db7bc99%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to