cFosSpeed 是 ASUS、GIGABYTE、ASRock、MSI 電競主機板的官方網路加速器

cFos PNet 的標準指令碼

與 cFos PNet 一起發行的指令碼可能可告訴您要如何用 Javascript 來實作伺服器功能。他們是設計來與客戶端瀏覽器互動的指令碼,例如 jQuery。按照慣例,伺服器端的指令碼會使用 .jss 副檔名,而客戶端使用的指令碼附檔名為 .js。換句話說,cFos PNet *會執行* .jss 檔案,而.js 檔案會傳輸至瀏覽器。

您可以使用 Visual Studio 或 Visual Web Developer 中的指令碼除錯器。若需除錯指令碼,您需要支援遠程除錯的 Visual Studio 或 Visual Web Developer 版本,例如 Visual Studio 專業版。要開啟指令碼除錯,將 c:\programdata\cFos\cFosPNet 中的 GLOBAL.INI[param] 段落中設定 enable_script_debugging=1

如果您未安裝指令碼除錯器,請把值設定為 0,否則在某些電腦上會卡住。您也可以在執行 cfospnet.exe 時加上 -enable_script_debugging-esd 參數來開啟指令碼除錯功能。

指令碼基礎的使用者管理和身份驗證

pub 資料夾中有子資料夾 users,當中還有每一位使用者的子資料夾。使用者密碼或其他可選的個人設定儲存在文件數據存儲在名稱為 PROFILE.TXT 的雜湊清單中。這樣可讓 cFos Pnet 內建的 HTTP 身份驗證功能高速存取並快取住帳號設定。在公開資料夾中也有一個子資料夾 www 與每一個使用者的子資料夾。這個資料夾包含了使用者可下載的檔案。file_op.jss 指令碼可讓使用者上傳文件到這個資料夾。

腳本根據 .htaccess 裡的個別設定來執行認證,因此你需要此目錄使用者的正確帳號密碼。

這為指令碼操作的簡短說明。您應該到原始碼中尋找如何運作。
makedir2.jss如果在請求的資料夾中沒有 index.htmindex.html 檔案,cFos PNet 會執行這個指令碼來產生資料夾清單。
指令碼使用 FileSystemObject 來收集目前資料夾內容的資訊。然後載入一個 XML 範本文件,分析後以 XML 提供的資料夾內容產生 HTML 頁面。若要更改資料夾清單的外觀或功能,請修改 XML 範本。產生的 HTML 的檔案中有基本的維護連結,您可以系統管理員的帳號登入後重新命名、刪除檔案或資料夾、上傳檔案並建立新的資料夾。這個功能是由客戶端的 jQuery 傳送 Ajax 請求給 cFos PNet 來進行。伺服器端的指令碼檔案 file_op.jss 會執行需要的 HTTP 認證並處理檔案操作。

file_op.jss根據以上的認證,進行檔案操作。檔案操作有 renamedeletemkdir 來建立資料夾和上傳。上傳通常需要認證;由於瀏覽器總是先上傳整個檔案到伺服器後,才會取得認證資訊,將會傳送文件兩次。為了讓瀏覽器先進行認證,file_op.jss 指令碼檔案會提供檔案上傳前的操作。而瀏覽器會透過 Ajax 請求要求伺服器回應 HTTP 認證(401),然後再實際上傳。上傳過程會交由 upload.jss 中的函數,使用 cFos PNet 的檔案物件以允許上傳任意大小的檔案。

user_op.jss執行基本的使用者管理功能:createdeletereset passwordlist,必須先以 admin 帳號登入。

list_op.jss由於雜湊清單在 cFos PNet 中扮演重要的角色,list_op.jss 為 Ajax 請求提供基礎清單操作。如上文所述進行相同的認證方案。也就是說,會依照指令碼位置來選擇要進行驗證的使用者。認證是根據各個資料夾中的 .htaccess 來達成。list_op.jss 提供以下操作:

get取得雜湊清單中的值。
set設定值清單的鍵值。
save儲存快照到硬碟中。
erase刪除一組鍵值。
clear 清除所有鍵值。
remove刪除記憶體/硬碟中的清單。
size回傳清單大小。
list列出雜湊清單的所有元素。

dyndns.htm 的 AJAX 會使用這些操作來設定 DynDNS 設定資訊。

dyndns.jss使用私人資料資料夾中的雜湊清單 dyndns.txt 設定檔案來註冊 DynDNS 或取消註冊。
可以在伺服器的啟動和關閉時使用(請參閱第 1 章)。

get_connections.jss用於顯示目前的 HTTP 連線。HTTP 都是 TCP 連線。要加快 HTTP 請求,瀏覽器會嘗試重複使用 HTTP 請求的 TCP 連線。HTTP 請求實際上只是一段短訊息跟回應。在那之後的幾秒鐘瀏覽器就會關閉 TCP,因此您可能只會看到使用者出現一下下。如果認證成功,將會回傳使用者名稱與 IP 地址。

stretch.jss由於調整網頁中的圖片格式始終是主要的負擔,我們做了一小段指令碼,使用 cFos PNet image object (GDI+)。它在網址的查詢字串中會使用檔案名稱和 w(寬度)與 h(高度)等參數。若您的圖片皆為不同大小,您應該只使用一個參數以保持圖片的寬高比。makedir2.jss 使用這個指令碼的連結來顯示目前資料夾中的圖片縮圖。

utils.jss集合常用的函數來簡化伺服器端的指令碼。提供以下功能:

-包裝 Web 伺服器物件與其函數。
- 延伸一些 JavaScript 字串物件相關的有用功能。
- 進行指令碼參數評估,評估查詢字串或 POST 表單資料。
- 載入,儲存和傳送小檔案(透過電子郵件)。
- Cookies 中使用 RFC 1123 日期。
- Cookies。
- 簡單的 XML 轉換功能。

若您在較大的計畫使用 cFos PNet,可能會想將各個功能單元封裝成模組,而不是單純引入的指令碼檔案位。cFos PNet 支援 common.js 專案的模組規格。

cFos Personal Net 文件