2009-06-12 115 views
0

我想創建一個內聯聊天。當我的網站的兩個窗口打開時,問題就會到來。因爲然後我的腳本將新消息發送到請求它的窗口(目前我正在使用簡單的輪詢,稍後將移動到彗星)。多瀏覽器Windows同步

有沒有我沒有想到的好技術,以便我可以向瀏覽器窗口發送消息?目前我正在使用讀取標誌,因此只要消息傳送到一個窗口,它就會被標記爲已讀。因此絕不會傳送到其他窗口。我該如何解決這個問題?

謝謝你的時間。

回答

1

我能想到的一件事是在消息上使用某種時間戳,而不是「讀取」標誌。

這樣,當新消息的頁面請求(以及我假設你使用某種時間爲服務器尋找新消息)將發送最後一個時間戳時,服務器會發回在那之後的所有消息。

0

每個窗口需要是一個單獨的「訂閱者」,並且服務器需要將消息發送給每個訂閱者。因此,不需要一個「讀取」標誌,您需要爲每個用戶提供一個「讀取」標誌。

不幸的是,這意味着要爲每個用戶制定一個隊列的用戶管理器,以及一種知道用戶何時消失的方法 - 也許當用戶停止輪詢一分鐘時。

在Gamma,Helm,Johnson和Vlissides的四人幫(「設計模式:可重用面向對象軟件的元素」)中查找「觀察者」模式(也稱爲「發佈 - 訂閱」), ISBN 0-201-633610-2)或在線。

+0

這將是一個真正的痛苦來管理。 – 2009-06-12 12:39:22