Как да интегрирате COMET чат в PHP приложение

Мисля да интегрирам чат във вече написано и работещо php приложение. Тъй като трябва да избера внедряването на чат, все пак ще ви обърна внимание:

  1. PHP не е добър за приложение на Comet. Сървър php comet за управление на чат няма да се мащабира добре, така че няма да е първият ми избор.
  2. Node.js + Socket I/O в крайна сметка може да бъде добър вариант за чат двигателя.
  3. AMQP (RabbitMQ?) може да бъде друго евентуално добро решение, не изключително с node.js, тъй като те могат да се интегрират доста добре.

Основният проблем е: как мога да избегна дублирането на код и бизнес логика? Има някои аспекти, които бих искал да отбележа:

  • Приложението управлява потребителите по RBAC начин. Потребителите трябва да могат да разговарят с други потребители в зависимост от тяхната роля (и някои други бизнес логики). Би било трудно (и лоша практика imo) да се дублира тази логика.
  • Ако използвам два различни сървърни процеса (както мисля) за IM и приложение, как мога да управлявам http сесия?

Накратко: IM ще бъде тясно свързан с бизнес логиката, така че наистина трябва да избягвам дублирането на код/логика, но в същото време не искам PHP машина за чат.

Благодаря ви предварително.


person ArtoAle    schedule 01.11.2011    source източник
comment
Бихте ли обяснили малко по-ясно какво точно питате?   -  person Polynomial    schedule 02.11.2011
comment
съжалявам, опитах се да премахна някои неща. Както и да е, да предположим, че приложението ми е facebook и работи на PHP. Как мога да добавя (комета) поддръжка за чат, без да пренаписвам бизнес логиката? (кой съм аз? влязъл ли съм, Джони мой приятел ли е - и мога ли да чатя с него? и така нататък...)   -  person ArtoAle    schedule 02.11.2011


Отговори (1)


Използвам нещо в моето php приложение, наречено Pusher

Ето връзката за Pusher

person Naftali aka Neal    schedule 01.11.2011
comment
Всъщност изглежда възможно решение, но силно предпочитам вътрешен софтуер :) главно поради търговски причини - person ArtoAle; 02.11.2011
comment
@ArtoAle разглеждал ли си сървър-sent-събития или websockets? - person Naftali aka Neal; 02.11.2011
comment
Съжалявам, не разбирам добре :) Проблемът ми не е как да внедря обратен ajax (socket I/O предоставя страхотни обвивки на websockets, които се връщат обратно в друго решение за обратен ajax, което работи доста добре). Притеснението ми е: ако имам приложение, управлявано от PHP, с много логика за управление на потребителите в него, как мога да избегна пренаписването на тази логика за управление на системата за чат?) - person ArtoAle; 02.11.2011