2012-02-17 78 views
5

我一直在努力,但我已經發現了iOS 5的默認情況下不接受cookies。即使使用Redis,我一直在嘗試許多不同的事情,但仍然無法讓一個會話持續多個請求。Node.js的會議沒有cookies

不使用餅乾,還有什麼其他會話可以怎麼做?我即將推出一個使用Redis的粗略會話模塊,在那裏我只是發送自己的「會話ID」,但似乎可以很容易地制動。

回答

2

我幾乎可以肯定你將要使用Cookie。另一種方法是通過url參數爲每個請求添加一個會話id,並在您的應用中使用某種中間件來確保將其添加到每個URL中。您可以通過解析您的響應或通過劫持您的模板引擎來將其包含在每個鏈接和表單中。我覺得這真的很奇怪,iOS沒有Cookie。我幾乎可以肯定,這是不正確的,你可以請你鏈接你讀的那個?

+0

其實你對滾動自己的會話啄後幾乎正是我所做的。病毒鏈接你在github上。您應該能夠將其保存在本地存儲中。我沒有看到這很可能是煎茶。看看這個----> https://gist.github.com/115536​​5 – 2012-02-17 04:41:21

5

如果你不能讓客戶端支持cookie,也許你可以把一些數據到本地存儲,然後傳達到服務器連接到會話,結構像一個單頁的應用程序。

它會是這個樣子:

server       |   client 
send initial payload, with token -->  store token in LocalStorage 
initial payload contains some script 

           <-- XHR request for /data?sessid=XXXXX 
look up session, do stuff  --> handle result, update DOM, do more XHR 

是否支持網絡插座?你可以使用Socket.io來完成傳輸,這將會減少很多延遲。