mud 網頁連線的開發 (以es2系統為範例) - MUD Game
By Jack
at 2018-12-14T00:20
at 2018-12-14T00:20
Table of Contents
由於現在運行中的 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 介面上的延伸功能, 如即時地圖/角色狀態監控...等功能
--
所以我拿 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 介面上的延伸功能, 如即時地圖/角色狀態監控...等功能
--
Tags:
線上
All Comments
By Harry
at 2018-12-18T07:48
at 2018-12-18T07:48
By Jessica
at 2018-12-22T15:16
at 2018-12-22T15:16
By Catherine
at 2018-12-26T22:44
at 2018-12-26T22:44
By Erin
at 2018-12-31T06:12
at 2018-12-31T06:12
By Dorothy
at 2019-01-04T13:40
at 2019-01-04T13:40
By Sandy
at 2019-01-08T21:08
at 2019-01-08T21:08
By Lily
at 2019-01-13T04:36
at 2019-01-13T04:36
By Belly
at 2019-01-17T12:04
at 2019-01-17T12:04
By Cara
at 2019-01-21T19:32
at 2019-01-21T19:32
By Eden
at 2019-01-26T03:00
at 2019-01-26T03:00
By Genevieve
at 2019-01-30T10:28
at 2019-01-30T10:28
Related Posts
SCLxLogitech 世界賽線下觀賽活動
By Frederica
at 2018-12-13T22:06
at 2018-12-13T22:06
特長和特別事件新機架
By Regina
at 2018-12-13T21:48
at 2018-12-13T21:48
特長和特別事件新機架
By Ethan
at 2018-12-13T20:41
at 2018-12-13T20:41
シャドバ道場 新卡
By Isla
at 2018-12-13T20:03
at 2018-12-13T20:03
12/15(六)闇影詩章ES大會in諾亞(指定)
By Jake
at 2018-12-13T18:57
at 2018-12-13T18:57