提一下 intermud 的替代方案構想,以底下四個函數為主:
socket_create
socket_connect
socket_write
socket_close
首先弄一台 server 出來,所有 tmi2_v3_改 的站,都可以透過
server 的管理者,提出遠端頻道互連的申請。
接著,假設有 A, B, C 三個 tmi2_v3_改 的站。
當 A 站以遠端頻道的指令,發送出一個訊息時
sent_msg_to_remote_server(msg);
遠端 server 收到該訊息後,就會將這個訊息同時送給 A, B, C
三個站的接收訊息物件,由這個物件進行訊息的廣播,達到從 A
站發送遠端訊息,A、B、C 三站都能接收到訊息的目的,而且..
一、可決定是否接收從某一站過來的訊息或是全部不接收
二、各站可決定是要讓 wiz 或是讓全部玩家皆可發送訊息
三、也可決定是只要讓 wiz 或是讓全部玩家皆可接收訊息
(我一般是希望只有 wiz 之間、甚至只有架站者之間可以)
四、sanc 目前的主機(可信任的 ip 來源)就可當 server
└而且也不一定要 sanc 當 server
五、假設 A 站還有另一個同樣以 tmi2_v3_改 架出來的 A2 站,
A2 站亦可向 server 提出公頻互通申請。
六、理論上 server 端可依各站提出的申請需求,決定自己站發
送出來的訊息,是要全部都能接收到,還是只有一部份可
七、訊息理論上可支援各站自訂的 semote
八、訊息是可被各站自行 log 的
九、使用遠端頻道互通前要向 server 端提出申請,申請時得附
上是哪一個 mud 站(ip + port)要送收訊息。
目前有些缺點,就是送出去的訊息,跟各站實際接收到的訊息可
能會有一些落差,某些特殊字元需再經過特殊處理這樣;另外就
是訊息的傳送也會有一些些的 delay 這樣(大概最長 1 秒多)。
優點就是架構簡單,未來釋出的 tmi2_v3_改 就會內建這樣的東
西,程式段會包在 channeld.c 裡頭並在 /include/intermud.h
宣告一些定義,遠端公頻指令預設為 tmi2(亦可自訂),下次釋出
的版本就會有。
不曉得大家的意見如何?
laechan