2010-10-29 57 views
0

A)如果我有一個Java應用程序啓動並等待指定端口上的套接字連接。有一種方法可以在用戶驗證後在php中維護會話連接,即持久連接?維護php和java應用程序之間的會話/連接

B)我的意思是,我試圖瞭解它如何完成與MySQL和PHP。 mysql或php如何知道上次打開的連接是什麼,所以你不必在執行mysql_connect之後?

C)打開和關閉每個頁面加載的連接是否有好處,還是維護一個持久連接更好?

d)如果是後者在C爲真,則可以描述或提供如何,將在一個PHP來實現的例子 - > Java的連接

回答

1

A)沒有,沒有。

B)mysql_pconnect()的工作原理是如何與Web服務器和PHP協作。 Web服務器通常會啓動一些處理請求的子進程。每個子進程一次只能處理一個請求,通過向不同進程發送併發請求來實現併發。

每個這樣的進程都有自己的PHP實例,每個新的請求都會重複使用它。這允許PHP模塊在請求之間保持某種狀態。你不能從普通的PHP代碼中做到這一點,它必須是用C語言編寫的擴展。然而,這並不能保證。一個進程可以隨時被殺死並重新啓動。

旁註:當然,並不是所有的Web服務器都使用這樣的過程。相反,使用線程方法很常見。然而,這不適用於PHP,因爲並非所有擴展都是線程安全的。因此,PHP總是必須在創建子進程來處理請求的Web服務器上運行。這種模式(MPM)在Apache上稱爲prefork。

C)正如我所說,你沒有選擇。但在快速網絡中,打開新連接的開銷很小。

+0

感謝您的明確和詳細的回覆。 – zcourts 2010-10-31 11:18:51

相關問題