Friday, March 31, 2017

Re: Would it be a good idea to build a IM app using django channels?

Hi Vic,

Channels would be a suitable building block for such an app, certainly, but you'd need to do a lot more work on top of it. Online presence management, chat history, login, authentication, and the protocol would all be the things you need to solve - Channels just gives you a basic eventing framework and webhooks support to start building on (in the same way Django doesn't come with, say, a built-in blog solution but the tools to build one instead).

Consulting on how to build an entire app like this would be several days of paid work for a good technical consultant, and they would be better placed to work out the context and your requirements and recommend solutions, but I would recommend using a relational database (PostgreSQL, MySQL) as a primary message store, always. Channels would then use Redis as the messaging transport; I wouldn't do caching initially as individual messages is not a very cacheable problem (everyone's view is different).

Andrew

On Fri, Mar 31, 2017 at 4:05 PM, Vic Wei <q532201960@gmail.com> wrote:
I'm trying to build a django Instant Massage app, but I have some confusions,
My app should the following needs:
1.be able to communicate in real time with browser, iOS, and Android native apps.
2.one user can send messages to another user in private
3.users can chat in serval chat room at a time
4.once a message is sent, it should be push to target user in realtime.
5.has a retry mechanism to guarantee delivery and messages should store in db like mysql
Is django channels suite my requirements? Is there a limit amout of channel or is that what I need to do is create a group for each online user including ios and android ones?
What my thought is using redis to cache the messages and store in MySQL, use celery to handle message store and distribute.
Anyone could give some advices?


--
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 django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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/228be88c-4ca8-4b52-875c-eb361e534e57%40googlegroups.com.
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 django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
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/CAFwN1ur9iUyPmgE_XP8CTskEkg5waK%2BshHkLDguhR%3DqDxZupcg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment