我一直在開發一個PHP AJAX聊天。 我現在想添加/ ban等命令。PHP AJAX聊天 - 聊天命令的邏輯?
但我不知道我該怎麼做。
首先,我希望命令以'/'開頭。
我必須首先檢查發送的郵件是否以'/'開頭,是否正確? 然後看看命令'禁止'是否存在,但它會如何知道,在句子中,用戶名將顯示在哪裏?
我真的很困惑,因爲我不知道在哪裏以及如何開始。 有沒有類似於我的需求的命令系統的開源?
我一直在開發一個PHP AJAX聊天。 我現在想添加/ ban等命令。PHP AJAX聊天 - 聊天命令的邏輯?
但我不知道我該怎麼做。
首先,我希望命令以'/'開頭。
我必須首先檢查發送的郵件是否以'/'開頭,是否正確? 然後看看命令'禁止'是否存在,但它會如何知道,在句子中,用戶名將顯示在哪裏?
我真的很困惑,因爲我不知道在哪裏以及如何開始。 有沒有類似於我的需求的命令系統的開源?
您需要定義語法爲您的命令自己。例如/ban <username>
禁止。
它看起來是這樣的:
$message = '/ban TimWolla';
if (substr($message, 0, 1) === '/') {
// $message is a command
$firstSpace = strpos($message, ' ');
$command = substr($message, 1, $firstSpace);
$parameters = substr($message, $firstSpace + 1);
if (!hasPermission($command)) error('Permission denied');
switch ($command) {
case 'ban':
ban($parameters);
break;
}
}
在要使用正確的OOP情況下使每個指揮類,並使用一個接口的所有指令要求的正確方法。例如:
interface Command {
public function setParameters($parameters);
public function hasPermission();
public function execute();
}
這就是我一直在尋找的,謝謝。 –
所有消息應發送到服務器。
也就是說,如果消息是「您好,歡迎使用該頻道」 - 這應該被解釋爲服務器上的MSG
命令。
您應該有一個Command
解析器服務器端來處理消息的類型。例如,如果MSG
消息被傳遞,請將其發送到MessageParser
。如果通過/
命令將其發送到CommandParser
。
一個ban
命令應該是形式:
/ban username
在服務器端水平,你應該檢查該用戶試圖執行的命令是一個經營者,如果他/她,然後查找該用戶名的IP地址並將其添加到服務器上的黑名單中。
你對他如何做到這一點似乎很有權威性。我不確定是否有辦法做到這一點 - 最終取決於他的決定。 – crush
@crush - 他們是多種方式來做到這一點。我已經使用'ASP.NET MVC'實現了這樣一個系統,所以我只是根據我的經驗提供了一個答案。無論如何,OP都可以自由實施,但我試圖將它們指向正確的方向。 –
那麼如果**你**,你自己定義命令爲'/ ban user',這對於解析輸入字符串來說非常簡單。 – Sebas
你正在開發這個系統,所以這取決於你的工作方式...... – crush
我從來沒有在我的生活中做過這樣的事情,並且我有一個關於如何做到這一點的想法,Crush。因此,我需要一些關於如何處理它的解釋,例子,來源和更多有用的信息。 –