[心得] mud 網頁連線的開發 (以es2系統為範例)

看板mud作者 (Typer)時間5年前 (2018/12/14 00:20), 編輯推噓8(803)
留言11則, 10人參與, 5年前最新討論串1/1
由於現在運行中的 mudlib 不方便公開 source code 所以我拿 es2 v1.3b 的 mudlib 來做 demo 完整的 source code 放在 github 上面, 網址是 https://github.com/jrealm/fluffos-web-es2 搭配使用的 mudos 是我修改過的 fluffos, 一樣也是放在 github, 網址如下 https://github.com/jrealm/fluffos 網頁連線主要是透過 websocket (以下簡稱 ws) 運作的 以下是 mudlib 修改的簡單說明: /adm/etc/es2.conf es2 的主要設定檔 需要開啟 ws port (這邊我使用的是 4001 port) /adm/obj/master.c 理論上這個檔案應該是不需要修改的 但 es2 在 connect() 裡面加上了 port 的判斷 只能也加上 4001 port, 否則會無法連線 /adm/obj/simul_efun.c 1. 增加 base64_encode(), sha1(), trim() 三個 sefun 進行 ws handshake 步驟時會用到 2. 覆寫 query_ip_name(), query_ip_number() 兩個 efun 用來取得 ws client 端的連線 ip /obj/login.c 1. 修改 logon() ws 連線需要多一道 handshake 的手續, 完成後才能開始登入程序 2. 新增 process_input() 處理 ws handshake 手續 這個 function 是整個 ws 連線的精華, 有興趣的板友可以參考 https://en.wikipedia.org/wiki/WebSocket 的 "Protocol handshake" 基本上 es2 系列的 mudlib 只要修改上述幾個檔案 再配合使用 fluffos 2.2x 作為 mudos 就可以提供 web 介面的連線方式 live demo 的網址是 https://demo-es2.muds.me/ 之後有機會再跟大家分享 1. 瀏覽器使用的 html/js/css (有興趣的可以先自行查看網頁原始碼) 2. web server 的設定 3. mud 在 web 介面上的延伸功能, 如即時地圖/角色狀態監控...等功能 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.168.68.192 ※ 文章網址: https://www.ptt.cc/bbs/mud/M.1544718006.A.0BE.html

12/14 12:50, 5年前 , 1F
感謝分享!
12/14 12:50, 1F

12/14 20:10, 5年前 , 2F
M起來
12/14 20:10, 2F

12/14 21:02, 5年前 , 3F
推推
12/14 21:02, 3F

12/15 11:27, 5年前 , 4F
12/15 11:27, 4F

12/15 16:01, 5年前 , 5F
M一波!!
12/15 16:01, 5F

12/15 17:31, 5年前 , 6F
應該不會用到了但是謝謝分享
12/15 17:31, 6F

12/17 23:05, 5年前 , 7F
還以為ES2回來了,玩了有滿足感
12/17 23:05, 7F

12/18 16:06, 5年前 , 8F
可惜網路上找不到完整版的src
12/18 16:06, 8F

12/21 04:50, 5年前 , 9F
機器還在只是有沒有人要拿而已吧 XD
12/21 04:50, 9F

12/21 09:22, 5年前 , 10F
有src我就可以架給大家回味
12/21 09:22, 10F

12/26 14:18, 5年前 , 11F
感謝分享
12/26 14:18, 11F
文章代碼(AID): #1S4eQs2- (mud)