看板 Soft_Job 關於我們 聯絡資訊
以下是閒聊 還有最近工作上第一次接觸web service的效能優化心得 ※ 引述《screwup (sss)》之銘言: : 好像偏離原題 不過我有個疑問XD : 高僧A的push大法在web app上螢幕關掉就不能push的原因是甚麼?? : 難道他是用websocket? : 如果是long polling是沒差的吧?long polling非同步push都是server端處理的 : long polling斷掉就重新讓ajax再連上去就好了阿 : 有請各位大大解答 如果是在M$環境下的web service 可以考慮用C#的SignalR去作WebServer跟WebClinet的連線處理部分 http://blogs.msdn.com/b/msdntaiwan/archive/2013/09/09/ signalr-reimagine-web-development.aspx 可以參考此篇的說明 signalR的優點 在於它會依照web clinet的條件 選擇建立 web socket, long polling...或者其他連線方式 並且可以減少web clinet透過ajax不停向web server作資料更新的請求(polling) 因為透過在web server上註冊每個web clinet 在資料更新後 作出廣播 : ------------------------------------------------------------------------ : 如果是關掉後無法在左上角顯示推播的話 這不是一開始就會知道的事情嗎... : 中國的高僧A根本來亂的XD :※ 發信站: 批踢踢實業坊(ptt.cc) :◆ From: 36.229.173.187 :lovdkkkk:應該有別的問題, 不然 WebSocket 也可以由 ajax 起頭再轉 01/04 15:59 :sing10407:他應該是說關掉網頁就不能推播? 01/04 16:12 :f1234518456:應該是想要把網頁關掉以後能在最上方訊息顯示吧? 01/04 16:21 :azureshin:主管要的是螢幕關畢也能像line一樣收到訊息。但瀏覽器在 01/04 17:44 :azureshin:螢幕關閉後會睡眠。結局明天po, 今晚吃尾牙 01/04 17:44 :kvjo:那幹嘛不用 mac , google 的原生push就好 = = 01/04 18:33 :kvjo:是要自己打造一個push機制??? 那整個環境機制都要自己弄 01/04 18:33 :kvjo:用mobile web 至少也應該有導入一些 hybird framework吧 01/04 18:35 :kinanson:做一個主控台程式,30秒執行一次,去偵測db資料,有新資 01/04 19:06 :kinanson:料就在右下角跳出通知,點了就開連結.....呃....亂入 01/04 19:06 如果是MS環境下 MS-SQL可以開啟Service Broker 並且C#使用sqlDependency 對指定的SqlCommand 建立關聯 當指定的SqlCommand 資料變動時 會送出event 就可以減少polling的情況 http://www.cnblogs.com/gesenkof99/archive/2008/12/19/1358584.html 可以參考此篇 :MacPerson:提個疑問 如果真的不用 SOCKET 真的用樓上說的 偵測DB有 01/04 20:19 :MacPerson:資料 就跳出提示訊息,後果是怎樣@@? 01/04 20:19 :MacPerson:我猜DB會先掛... 01/04 20:22 :kinanson:回樓上,一個db如果每秒能承受上萬人上線瀏覽,為何30秒 01/05 00:29 :kinanson:一個查詢會掛掉呢???? 01/05 00:29 題外話 一個能服務多人的大型web 系統 通常DB的output操作 大於 input 所以在系統設計上必須把IO操作切割開來 並且在output用的server上建立memcache減少DB存取 並加快client的資料取得 然後透過類似如上所提的signalR的機制 減少client對server無謂的polling浪費資源 總之 就是用空間(memcache)換時間(CPU tasks) 而DB跟web clinet中間沒有用 中介層(ex:db server)做安全性與效能上的處理 真有點恐怖... :MacPerson:每秒這麼多的INSERT與SELECT 「感覺」有點不妙 01/05 00:56 並且有可能insert跟update沒做data lock處理 然後導致 資料越來越髒亂 然後就gg :MacPerson:以前維護過得系統常常LOCK,所以直覺DB HOLD不HOLD的住 01/05 00:57 :MacPerson:當然如果DB真的承受的住 另當別論... 我也只是猜.. 01/05 00:58 :MacPerson:註:之前維護的SERVER,是別的場淘汰過來的,經歷那個系 01/05 01:05 :MacPerson:統,我SQL的功力也提昇了很多@@ 01/05 01:06 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.240.239.100