看板 Minecraft 關於我們 聯絡資訊
看了版友的政見後 覺得這東西不用等到新版主出來才能做 恰巧身邊有長期租用的server可以跑cron (後述) 也恰巧今天不想認真上班 (爆 所以就花了幾個小時把原型做出來 不多說 Demo網址如下 http://moomoofarm.net/svList/PTTServer.php 看原本的討論要驗證server狀態有兩個方向 1. 使用者瀏覽時才即時查 2. 後台定時查詢server 然後紀錄最新狀態 第一種很直接 但考量到server如果數量眾多 大概要跑好一陣子 就算用for loop 跑一群ajax 暴增的連線數不曉得會不會讓網管找上門來(汗 第二種是我目前採用的方法 但又更進階一點 先用後台使用cron下指令每30分鐘跑狀態 查詢的php然後記錄到database 除了server主就不用為了一堆injection洗頻煩惱外 留 下的紀錄也可以看到各server的上線率跟人數增長 如果長時間(ex:7天)無上線狀態 可 以判斷成關站然後就自動剃除在列表外.. 不過目前資料不多 所以還沒做到這步 至於系統的缺點嘛.. 就是一定要有server的ip/port 否則無法判斷是否仍然在運作 我是有設定非公開address 就不會回傳這部分資料 但DB裡面還是必須要有 所以如果DB外流 所有的server IP就會被 公開 這點就要各伺服主去衡量 為了開發測試 現在上面的server是我在ptt隨便抓的 白名單跟正版驗證也是亂寫的 如果不符合現實情況請一笑置之 另外server說明跟mods數量還沒放上去 等資料齊了再補 另外希望有人整理伺服列表 這樣可以早點把log建立起來 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.134.164.249 ※ 文章網址: https://www.ptt.cc/bbs/Minecraft/M.1423733910.A.CBE.html ※ 編輯: mamaya3 (220.134.164.249), 02/12/2015 17:55:35
m339606: 推 有沒有興趣讓人可以自行填加維護server?少了自己維護 02/12 18:17
m339606: 的麻煩也讓大家好利用 02/12 18:17
HailHydra: 推 02/12 19:56
janice001: 哈哈!棒! 02/12 19:56
janice001: 本來我是打算用免費web server 請參考 http://lionfree 02/12 20:06
janice001: .net 02/12 20:06
janice001: 用手機抱歉 http://lionfree.net 02/12 20:06
mamaya3: 之後應該會做一個server登錄 登錄後可以修改自己server的 02/12 20:34
mamaya3: ip, 說明等細項 02/12 20:34
nick5487: 大推 02/12 21:18
bespace: 推!!!! 02/12 21:33
janice001: 推推! 02/12 21:33
nick5487: 最快達成的政見 未選先做 (? 02/12 21:38
BlueCatX: 強大推! 02/12 22:38
yuan860721: 太厲害啦~~~ 02/12 22:39
arnobee: 嗚嗚竟然沒有BOOOOOM QQ 02/12 22:53
k1dave6412: 推 02/12 23:28
salinia: 朝聖推 ._. 02/13 00:07
joyo21114s: 推 02/13 00:15
kizajan: 麥阿信居然還有那麼多人!! 02/13 01:02
janice001: ncue 其實已經換伺服器 封測一段時間了 XDDD 02/13 01:16
v2266514: 很厲害,讓我這個nerb甘拜下風 02/13 01:34
t19910422: 推...不愧是玩工業伺服器的玩家(? 02/13 02:00
nick5487: bom不是沒在招生了嗎 02/13 02:56
cowbaying: 你用js跑server api不就好了..... 02/13 08:50
lother: 大大超強! 02/13 09:31
cheko: 辛苦了 02/13 11:02
oToToT: すけ~~~~~~~~~~~~ 02/13 11:16
oToToT: 為何不用websocket作動態更新 02/13 11:18
mamaya3: 不清楚你說的websocket要用在哪方面 麻煩分享一下 02/13 11:35
janice001: 應該可以提出一下為什麼要用? 02/13 11:36
mamaya3: 考量做到完全即時 我怕會容易出現DDOS問題XD 02/13 11:42
lother: 這種變動少的東西不需要用到websocket啦XDD 02/13 12:16
oToToT: 我原本想說搞不好可以五分鐘或幾分鐘更新一次XD 02/13 13:29
lother: 但幾分鐘也只需要排程去做~~不需要用到websocket維持連線~ 02/13 14:35
註冊單的原型 也做好了 http://moomoofarm.net/svList/PTTSvAdminReg.php 關於註冊認證的方式我想了很多方案 後來覺得用server motd驗證是比較安全的方式 如果伺服主有興趣的話 可以來註冊看看 ※ 編輯: mamaya3 (220.134.164.249), 02/13/2015 16:17:13
qscgg: 這個好棒!! 02/13 16:20
mamaya3: http://moomoofarm.net/svList/PTTSvAdmin.php sv管理頁 02/13 17:27
SmallBeeWayn: C洽村加不進來, 版本問題? 02/15 20:27
mamaya3: 今天好像DB執行比較慢 不然資料寄給我 我從後台填 02/15 22:05
試了一下...C洽村可能是版本問題所以查不到 另外統計圖表做好了 目前最大問題應該是不支援觸碰裝置XD ※ 編輯: mamaya3 (220.134.164.249), 02/16/2015 17:45:21
mmis1000: 1.5以下的有另外的格式,格式在 02/17 01:11
mmis1000: http://wiki.vg/Protocol 有寫到 02/17 01:12
mmis1000: http://goo.gl/F6zk7X 02/17 01:21
mmis1000: http://wiki.vg/Server_List_Ping 02/17 01:22
昨天改了一下 1.4 1.5用上面的方式可以query到 demo : http://moomoofarm.net/svList/ 不過好像沒辦法連續query 也就是當偵測1.8, 1.7版本失敗時 再改用pre 1.5的方式偵測會讀不到東西 除非改成所有server先用pre 1.5 的方式去偵測 等timeout再去query 1.8 , 1.7...但這樣不太符合效率比例 當然也可以先在DB設定該Server版本 不過要動的東西就比較多了 ※ 編輯: mamaya3 (111.240.204.148), 02/18/2015 10:31:00
mmis1000: 用pre 1.6偵測1.7會回傳 protocol version 99 02/20 18:42
mmis1000: 表示是新protcol 02/20 18:42
mmis1000: 但有某幾版似乎有問題,不會回應舊protocol 02/20 18:44
mmis1000: 更正,是會回應127,不是99 02/20 18:47
mmis1000: 所以正常而言,除非沒開,應該不會timeout 02/20 18:51
有沒有Timeout其實不是主要問題問題 只是如果要偵測pre 1.6 必須把method放在第一位 之後再偵測1.8 or pre 1.7才沒有回傳無資料的問題 但絕大部分server版本是1.6之後 這樣做的話總偵測時間差不多是加倍 目前sv數量少還好 但多起來的話 感覺會很沒效率 另外這邊是你之前給的連結程式測試C洽村的回傳json http://moomoofarm.net/svList/src/14.php 不知道是不是範例程式漏了什麼 沒看到protocol資訊 Orz ※ 編輯: mamaya3 (111.240.219.235), 02/20/2015 20:59:38
mmis1000: 之前的那個並不是我寫的...我的實作是這個 02/20 21:46
mmis1000: http://goo.gl/tl3vE7 02/20 21:48
mmis1000: 是js寫的 02/20 21:49
mmis1000: protocol version是第二個utf16be string 02/20 21:50
mamaya3: 好 有空我試試 謝謝 >"< 02/20 21:58
mmis1000: spigot 1.8對舊協議似乎有bug,會無條件timeout 02/20 22:20
mmis1000: 阿...好像是伺服器問題,ping boom正常 02/20 22:44
mamaya3: 不過現在問題是什麼資料都沒回傳 倒不是資料解讀出問題XD 02/21 17:19
mmis1000: 是哪個伺服器才有這種現象嗎?沒遇過 02/21 18:31
mamaya3: 我上面有講 先用1.8 probe再用pre1.6方式會傳回空資料XD 02/21 19:03
mmis1000: 你有close掉目前連線再開新連線?或是直接重用? 02/21 19:49
mmis1000: 這不應該是會發生的事啊? 02/21 19:49
mamaya3: 當然是close後fetch不到資料 我是用C洽村測的 也許是有擋 02/21 21:18
mamaya3: 類DDoS的行為 不過其他sv在1.8 fail->close->1.7就沒問題 02/21 21:19
mmis1000: 我是都先舊再新,反正也差不了幾秒鐘 02/22 00:17
前面有提過 server數量多起來的話 浪費的時間就很多了
mmis1000: 是說php開socket其實頗沒效率,換個語言或許才是正解? 02/22 00:19
mamaya3: 為了pre1.6要改寫核心部分 實在是有點懶啊XD 02/22 00:35
一方面是pre 1.6的server比例真的不多 再者這些sv的活躍玩家我也很懷疑有多少 過年之後手頭開始忙了 這偵測這部分大概就還是維持原樣吧XD ※ 編輯: mamaya3 (111.240.219.235), 02/22/2015 00:41:57