伺服器的長輪怎麼使用
A. php做伺服器推送的ajax長輪詢和ajax的同步有什麼區別嗎
用ajax模擬伺服器推的原理是:伺服器端PHP設置成頁面運行的時間不超時,通過一直循環不急忙返回數據,讓ajax 請求一直處於等待狀態,php在循環中等待數據,當數據有了才返回。
而一般ajax則是,不管有沒有執行了直接返回,不會延長伺服器的響應時間。
B. Interbase 資料庫提交問題,怎樣實現實時更新數據
Ajax 技術已經存在了一段時間,開發的動力已經真正開始得到了人們的認可。越來越多的 Web 站點正在考慮使用Ajax 進行設計,開發人員也開始將 Ajax 的能力發揮到極限。隨著社交網路和協作式報告等現象的出現,一組全新的要求浮現出來。如果有其他用戶更改了某位用戶正在觀察的任何活動,則用戶希望得到通知。如果一個 Web 站點顯示動態數據,如股價等,那麼所有用戶都必須立即得到關於變更的通知。這些場景本身屬於一類稱為 「伺服器推送」 的問題。通常,伺服器是中心實體,伺服器將首先獲得關於所發生的任何更改的通知,伺服器負責將此類更改通知所有連接的客戶端。但遺憾的是,HTTP 是客戶端-伺服器通信的標准協議,它是無狀態的,而且在某種意義上來說,也是一種單向的協議。HTTP 場景中的所有通信都必須由客戶端發起,至伺服器結束,然而我們所提到的場景的需求則完全相反。對於伺服器推送來說,需要由伺服器發起通信,並向客戶端發送數據。HTTP 協議並無相關配置,Web 站點應用程序開發人員使用獨創的方法來繞過這些問題,例如輪詢,客戶端會以固定(或可配置)的時間間隔與伺服器聯系,查找是否有新更新可用。在大多數時候,這些輪詢純粹是浪費,因而伺服器沒有任何更新。這種方法不是沒有代價的,它有兩大主要問題。這種方法極度浪費網路資源。每一個輪詢請求通常都會創建一個 TCP 套接字連接(除非 HTTP 1.1 將自己的keepAlive 設置為 true,此時將使用之前創建的套接字)。套接字連接本身代價極高。除此之外,每一次請求都要在網路上傳輸一些數據,如果請求未在伺服器上發現任何更新,那麼這樣的數據傳輸就是浪費資源。如果在客戶端機器上還運行著其他應用程序,那麼這些輪詢會減少傳輸數據可用的帶寬。即便是請求成功,確實為客戶端傳回了更新,考慮到輪詢的頻率,這樣的更新也不是實時的。例如,假設輪詢配置為每 20 秒一次,就在一次請求剛剛從伺服器返回時,發生了更新。那麼這次更新將在 20 秒後的下一次請求到來時才能返回客戶端。因而,伺服器上准備好供客戶端使用的更新必須等待一段時間,才能真正地為客戶端所用。對於需要以盡可能實時的方式運行的應用程序來說,這樣的等待是不可接受的。考慮到這樣兩個問題,對於需要關鍵、實時的伺服器端更新的企業應用程序而言,輪詢並不是最理想的方法。在這篇文章中,我將介紹多種可以替代輪詢的方法。每一種替代方法在某些場景中都有自己的突出之處。我將說明這些場景,並展示需要實時伺服器推送的一組 UI。讓我們來具體看看用於更新來自伺服器的信息的一些常用技術,這些技術模擬了伺服器推送。短輪詢也稱為高頻輪詢,就是我在本文開頭處介紹的技術。這種方法在以下情況中表現最好:有足夠的帶寬可用。根據統計數據,大多數時候,請求都能獲得更新。例如,股市數據就總是有可用更新。使用 HTTP 1.1 協議。設置 keepAlive=true,因而,同一個套接字連接始終保持活動狀態,並可重用。長輪詢是用於更新伺服器數據的另外一種方法。這種方法的理念就是客戶端建立連接,伺服器阻塞連接(通過使請求線程在某些條件下處於等待狀態),有數據可用時,伺服器將通過阻塞的連接發送數據,隨後關閉連接。客戶端在接收到更新後,立即重新建立連接,伺服器重復上述過程,以此實現近於實時的通信。然而,長輪詢具有以下缺陷:一般的瀏覽器默認允許每台伺服器具有兩個連接。在這種情況下,一個連接始終是繁忙狀態。因而,UI 只有一個連接(也就是說,能力減半)可用於為用戶請求提供服務。這可能會導致某些操作的性能降低。仍然需要打開和關閉 HTTP 連接,如果採用的是非持久連接模式(keepAlive=false),那麼這種方法的代價可能極高。這種方法近於實時,但並非真正的實時。(當然,某些外部因素總是不可控的,比如網路延時,在任何方法中都會存在這些因素。)流通道(streaming channel)與長輪詢大致相同,差別在於伺服器不會關閉響應流。而是特意保持其處於打開狀態,使瀏覽器認為還有更多數據即將到來。但是,流通道也有著自己的缺陷:最大的問題就是數據刷新(flushing)。過去,Web 伺服器會緩存響應數據,僅在接受到足夠的位元組數或塊數後才會發送出去。在這種情況下,即便應用程序刷新數據,也仍然會由伺服器緩存,以實現優化。更糟的是,如果在客戶端和伺服器之間存在代理伺服器,那麼代理也可能會為自身之便緩存數據。如果發現套接字將打開較長的時間,某些瀏覽器實現可能會自行決定關閉套接字。在這種情況下,通道需要重新建立。通常,第一個問題可通過為每個流響應附加垃圾有效載荷來解決,使響應數據足以填滿緩沖區。第二個問題可通過「保持活動」 或按固定間隔 「同步」 消息來欺瞞瀏覽器,使瀏覽器認為數據是以較慢的速率傳入的。這些解決方案適用的用例范圍狹窄。所有這些方法都已經在 Internet 上的某些解決方案中得到了應用。然而,這些解決方案都遭遇了相同的問題:缺乏可伸縮性。典型情況下,要阻塞一個請求,需要阻塞處理請求的線程,因為如今幾乎所有應用伺服器都會執行阻塞 I/O。即便不是這樣,java™ 2 Platform, Enterprise Edition (J2EE) 也未提供為 HTTP 請求和響應執行非阻塞 I/O 的標准。(Servlets 3.0 API 可解決這一問題,因為這些 API 中包含Comet Servlet。)至此,需要具備非阻塞 I/O(NIO)伺服器,客戶端應用程序通過它進行連接。由於此類套接字是純 TCP 二進制套接字,因而將實現以下目標:由於伺服器端具有 NIO,因而可實現更高的可伸縮性。響應緩存的問題不復存在,因為這個套接字直接受應用程序的控制。基於上述說明,有必要指出這種方法的四個缺點:由於使用的是二進制 TCP 套接字,因而應用程序無法真正地利用 HTTPS 層提供的 SSL 安全性。所以,要求數據安全性的應用程序可能需要提供自己的加密工具。通常情況下,伺服器套接字將在 80 以外的埠上運行,如果防火牆僅允許來自埠 80 的流量,將出現問題。因而,可能需要進行一些埠配置。Ajax 客戶端無法通過後端打開 TCP 套接字連接。即便 Ajax 客戶端能夠執行 open 函數,也無法理解二進制內容,這是因為 Ajax 使用的是 XML 或 JSON(基於文本)格式。在這篇文章中,要強調的是如何真正地繞開第三個和第四個問題。如果能夠處理安全性和防火牆問題,那麼其他問題也能得到處理。這種做法的獲益極為顯著。可為應用程序實現最大程度的實時伺服器推送行為(不考慮網路延時等外部因素),將獲得高度可伸縮的解決方案(以同時連接的客戶端數量為准)。下面解決上述的第三個和第四個問題。Ajax 並不能真正地解決第三個和第四個問題。因而,需要利用其他 RIA 技術尋求解決方案。有兩種 RIA 技術提供的套接字 API 可與 Ajax 應用程序交互。這兩種技術是 Adobe Flex 和 OpenLaszlo。全面介紹這兩種技術並非本文討論范圍之內,但這些技術提供的兩種特性如下所示:但這僅僅解決了部分問題。確實可以打開套接字,可以使 Ajax 應用程序使用它們,但 Ajax 應用程序仍然無法處理純二進制數據。實際上,這兩種技術都提供了二進制 TCP 套接字的一種變體,稱為XMLSocket,它可用於來回傳輸純 XML 數據。這正是您需要的東西。如果這些技術能夠通過伺服器打開套接字,如果它們能夠傳輸 XML 數據,任務就完成了。Ajax 應用程序可充分利用這一點,模擬實時伺服器推送技術。下面將介紹如何實現。將使用兩種工具解釋這項技術:Adobe Flex 和 OpenLaszlo。首先,需要編寫能夠接收並緩存連接的後端伺服器。在這里不能太過偏離主題,因而要保證伺服器基於阻塞 I/O。需要創建一個伺服器套接字,接收預先指定地址的連接:在這里,將伺服器套接字綁定到 localhost:20340 這一地址。當一個客戶端連接到該伺服器套接字時,它將為我提供一個套接字,顯示連接。Flex 客戶端隨後會要求策略文件,這是其安全性模型的一部分。通常,這個策略文件的形式類似於清單 2。就在連接之後,Flex 客戶端會立即發送一條策略文件的請求。該請求僅包含一個 XML 標記:<policy-file-request/>。在響應中,您需要返回此策略文件。清單 3 中的代碼就完成了這個任務。此代碼建立了與客戶端的成功連接。現在,伺服器可以與客戶端發起 「握手」 之類的協議,此時,伺服器通常會指定一個惟一的 ID,並將其發送給客戶端,此後,伺服器可根據 ID 緩存套接字,在此之後,如果伺服器需要向客戶端推送某些數據,可以按照 ID 定位套接字,並使用其輸出流。幸運的是,OpenLaszlo 也使用了相同的基於策略文件的機制,因而,同樣的伺服器代碼適用於兩種場景。下面將介紹如何創建 Flex 套接字,隨後將其與 Ajax 應用程序連接。完成 socket.connect() 調用後,Flex 將向伺服器發送一條請求,要求提供策略文件,期待獲得 XML 響應。完成之後,連接即建立,這個套接字現在即可用於從伺服器推送數據。作為拼圖的最後一塊,將看到 Flex 如何將 Ajax 作為應用程序調用。為此,要編寫一個可處理伺服器端消息的通用 JavaScript 函數。將此方法命名為 handleServerMessageReceived(message)。此方法會獲取來自伺服器的 XML 代碼,此方法對於消息的處理方式以應用程序為依據。清單 5 中的代碼展示了 Flex 如何調用 JavaScript函數。這是 readHandler 方法的代碼,該方法在接收到伺服器 XML 消息時被調用。就是這樣!就是這樣簡單。已經創建了一個 XML 套接字連接。當來自伺服器的數據送達時,可調用 Ajax 中的某些通用處理函數,處理這些消息。完整源代碼可供下載(請參見下載部分)。下面來看看 OpenLaszlo 如何實現相同的目標。由於 OpenLaszlo 應用程序以 Flash 和 DHTML 平台為目標,因而其 API 和腳本語言類似於 Flash 和JavaScript。這主要是為希望遷移到 OpenLaszlo(作為 RIA 的替代方案)的 Web 開發人員提供便利。OpenLaszlo 提供了兩種創建與後端之間的持久連接的方法。一種方法要使用 Lz(Laszlo 的縮寫)標准庫中提供的ConnectionManager API。但其文檔明確說明了以下內容:「警告:這項特性是臨時的。此特性用於容量有限的環境,能夠用於開發,但我們不推薦使用此特性進行部署(不包括低容量、非任務關鍵型的部署)。若對使用此版本的持久連接的應用程序的健壯性有任何問題,請直接咨詢Laszlo Systems。」或許目前這是一項實驗技術,但在未來的 OpenLaszlo 版本中,它將得到證實。第二種方法與 Flex 相似,您要手動打開 XML 套接字連接,等待 READ_DATA 事件發生。清單 6 展示了實現方法。(為簡短起見,忽略了其他處理方法。在本文的下載部分中可獲得完整的代碼清單。)就是這樣,創建一個套接字對象並連接此對象就是這樣輕松。這一代碼清單創建了一個名為 ClientSocket 的新類,隨後聲明了一個名為 「xml_socket」 的 XML 套接字對象。只要此套接字對象讀取到來自伺服器的數據,就會觸發onData 事件,該事件將由為 onData 定義的處理方法處理。最後,在 onData 處理方法中,調用 Ajax 應用程序中的外部 JavaScript 函數。此後的流程與 Flex 客戶端相同。要創建 ClientSocket 對象,只需聲明它即可:為 ClientSocket 觸發了 init 事件時,將嘗試連接指定主機和埠的後端。(請參見清單 6 中的 oninit 處理方法。)這篇文章討論了幾種模擬伺服器推送的方法,從純輪詢到實時伺服器推送,文中說明了每種方法的優缺點。最後,重點關注了能夠提供最優伺服器可伸縮性和實時伺服器推送行為的方法。伺服器推送並非適用於每一個應用程序。實際上,大多數應用程序都非常適合普通的請求/響應場景。其他一些應用程序使用輪詢和類似的技術足以滿足需求。只有那些伺服器更新極為重要、客戶端需要得到即時通知的重量級應用程序才需要本文所述技術。有必要再次強調,這種技術有兩個主要的缺點:如果數據需要通過 HTTPS 傳輸,客戶端套接字無法利用 SSL 加密工具。防火牆需要允許客戶端套接字通過非標准埠(非 80 埠)連接到伺服器。然而,市面上存在著大量開源庫,可利用它們輕松編寫自定義的加密常式。類似地,配置防火牆也是輕而易舉的,實際上,只需付出很少的代價,即可獲得強大的實時伺服器推送功能。謝謝啦。。試了一下可以用了每次插入數據,就重新載入一次你的DataGridView ,重新把所有數據刷一次,這樣就不用手動去點擊了。非同步載入更新。主頁讀取 後台server.php 返回的JSON數據。在頁面上動態展示。
C. 伺服器怎麼管理、維護
可以利用伺服器管理面板進行運維,比如說雲幫手,伺服器的cpu使用率,內存使用率,硬碟使用率,網路使用率等都可以很直觀的看到,
D. vps伺服器應該怎麼使用
Vps使用操作
1.打開遠程桌面登陸器:
開始-----運行-----mstsc
或者 開始——所以程序——附近——遠程桌面連接
2. 造成帳戶卡死的情況分為多種.
第一種.客戶端同時登陸,造成帳戶卡死.
第二種,某一帳戶在運行某些程序的中途退出遠程
第三種.某些單用戶限製程序被同一系統管理員同時運行.
3.不要安裝第三方防火牆
如果您需要防火牆,請使用windows自帶的防火牆功能,在VPS里安裝第三方防火牆會 造成VPS系統崩潰和數據丟失系統會自動獲取最新windows補丁並自動進行安裝,無需人工干預,在VPS里安裝系統補丁,嚴重時會導致VPS系統崩潰和數據丟失
不要修改遠程桌面連接埠
由於VPS系統的特殊性,默認遠程桌面埠為3389,不可隨意更改,否則會無法進行遠程連接
4.除了某些程序必須在用戶登陸的情況下運行的情況外, 建議退出遠程連接時注銷用戶, 能節省內存資源, 並防止下次登陸出現超出最大連接數的情況. 如果出現超出最大連接數的情況, 可以重起VPS.
5.VPS交付使用時已經做了相關的安全設置, 安全性比較高, 建議不要隨便開啟防火牆, 如果自己開啟防火牆, 也一定要打開以下必要埠:21(FTP), 3389(遠程連接), 80(網站http),3306(MySQL),1433(SQL Server). 定時檢查是否有可疑賬號和系統日誌, 發現可疑文件和進程可以下載360安全衛士進行檢查. 注意網站文件夾的許可權設置, 由於VPS被入侵導致資料被刪除, 後果自行負責.
6.盡量不要手動修改注冊表, 以免VPS啟動不了. 修改遠程埠務必先在防火牆中添加修改後的埠, 再進行重起. 萬一出現遠程連接埠被防火牆屏蔽, 請及時聯系我們.
7.修改IIS的配置文件, 務必先把文件備份, 然後用能保留文件格式的軟體修改, 防止配置文件格式被破壞導致IIS無法使用.
8.VPS的網站服務和IIS的FTP服務默認是手動開啟的, 如果是站長請把服務中的最後一個即World Wide Web Publishing Service設置成自動, 如果需要經常使用IIS的FTP服務請把FTP Publishing Service服務設成自動, 即能實現開機自動啟動. 如果用的是serv-u, 把設成系統服務的選項鉤上即可. 從安全性和資源消耗方面來說, 建議不經常使用FTP的用戶不要設成自動。
E. asp.net的伺服器端如何實現長輪詢
問題描述不清楚啊;業務邏輯是什麼?
用js的setinteval調用function可以實現輪詢
F. 伺服器怎麼使用
使用方法步驟如下:
1、登錄伺服器商的網站管理賬號。
G. 雲伺服器怎麼用
1、准備好一台雲伺服器,雲伺服器多包含的基本配置就是cup,內存,硬碟等基本配置。
H. java消息推送,一個實時數據的web顯示該怎麼做
javaweb消息實時推送可以使用GoEasy平台。
操作如下:
到goeasy官網上注冊一個賬號,並創建一個應用,應用創建好後系統會默認為它生成兩個key: publish key和subscribe key。
前台實時訂閱及接收:需要引入goeasy.js,然後調用goeasy的subscribe方法訂閱一個channel即可,訂閱時無論是用publish key還是subscribe key都可以。通過subscribe的參數 onMessage的回調函數可以實時接收到消息。
前台實時推送:需要引入goeasy.js(如果該頁面已經引入了可不在引入),然後調用goeasy的publish方法向已訂閱的channel上推送消息即可,推送時只能用publish key。
後台實時推送:調用GoEasy Restful API, 用post方式訪問http://goeasy.io/goeasy/publish, 同時還需要帶上三個必要參數:
appkey: publish key
channel: 你訂閱了的channel
content: 推送內容
GoEasy的實現原理很簡單,就是推送消息的一端只負責推送,而需要接收的頁面需要預先訂閱。訂閱什麼呢?訂閱channel。往 某個channel上推送消息,客戶端就訂閱相同的channel,這樣就可以確保准確接收。通過channel我們可以自己指定哪些頁面或哪些用戶可以 接收到從這個channel上推送出來的消息。
I. 想買一台個人用的伺服器 需要長時間開機運行 用來掛游戲的 想知道買了伺服器之後該如何使用
你完全可以不用買伺服器,裝一台高配的電腦連續開個3.5天得都沒問題,但是散熱扇和電源一定要選好。一個伺服器一般的害的7.8千,足夠你配置兩台電腦了,你兩台輪流上或者一起上不是更好。得不償失,職位掛游戲或者玩游戲的話不劃算,伺服器是用來開游戲當做游戲的服務端用的,你太大材小用了。
伺服器就和電腦主機一樣 配上屏幕插上滑鼠鍵盤、音響跟電腦一樣,知識內在配置不一樣罷了,用法也一樣。,只是用的專業的電源和專業的散熱設備以及專業CPU,以及不同一般電腦的硬碟而已。其他的都差不多,會玩電腦就會用那個的。