我一直在开发一个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。因此,我需要一些关于如何处理它的解释,例子,来源和更多有用的信息。 –