2011-11-01 93 views
1

我正在考慮在已編寫和正在運行的php應用程序中集成聊天功能。 由於我必須選擇聊天實施,但我會告訴你一些考慮:如何在PHP應用程序中集成COMET聊天

  1. PHP對Comet應用程序不好。用於管理聊天的php慧星服務器不能很好地擴展,所以它不會是我的第一選擇。
  2. Node.js + Socket I/O最終可以成爲聊天引擎的一個很好的選擇。
  3. AMQP(RabbitMQ?)可能是另一個可能的好解決方案,不是node.js獨有的,因爲它們可以很好地集成。

主要問題是:我該如何避免代碼和業務邏輯的重複?我想指出一些方面:

  • 該應用程序以RBAC方式管理用戶。用戶應該能夠根據其角色(以及其他業務邏輯)與其他用戶聊天。複製該邏輯將是困難的(也是不好的做法)。
  • 如果我爲IM和應用程序使用兩個不同的服務器進程(如我所想),如何管理http會話?

簡而言之:IM將與業務邏輯緊密結合,所以我真的需要避免代碼/邏輯的重複,但同時我不想要一個PHP聊天引擎。

預先感謝您。

+0

鏈接你能否讓它爲它到底是什麼,你問一個更清晰一點? – Polynomial

+0

對不起,我試圖刪除一些東西。無論如何,假設我的應用程序是Facebook,並且它運行在PHP中。如何在不重寫業務邏輯的情況下添加(慧星)聊天支持? (我是誰?我登錄了,是Jhonny我的朋友 - 我可以和他聊天嗎?等等......) – ArtoAle

回答

0

我用我的PHP應用程序叫做Pusher

這裏是Pusher

+0

實際上,這似乎是一個可能的解決方案,但我更喜歡內部軟件:) for商業原因主要是 – ArtoAle

+0

@ArtoAle你看過服務器發送的事件或websockets? – Neal

+0

對不起,我不是很瞭解:) 我的問題不是如何實現反向ajax(套接字I/O提供了一個很好的websockets包裝,這在其他反向ajax解決方案中可以很好地工作)。我擔心的是:如果我有一個PHP驅動的應用程序,裏面有很多用戶管理邏輯,如何避免重寫這些用於管理聊天系統的邏輯?) – ArtoAle