PHP AJAX聊天-聊天命令逻辑?
我一直在开发一个PHP ajax聊天。 现在我想添加像/ban之类的命令 但我不知道我该怎么做 首先,我希望命令以“/”符号开头 我必须先检查发送的邮件是否以“/”符号开头,对吗? 然后查看命令“ban”是否存在,但它如何知道,用户名将显示在句子中的什么位置 我真的很困惑,因为我不知道从哪里开始,如何开始。 是否有类似于我的需求的开源命令系统?您需要自己为命令定义语法。例如,禁令的PHP AJAX聊天-聊天命令逻辑?,php,Php,我一直在开发一个PHP ajax聊天。 现在我想添加像/ban之类的命令 但我不知道我该怎么做 首先,我希望命令以“/”符号开头 我必须先检查发送的邮件是否以“/”符号开头,对吗? 然后查看命令“ban”是否存在,但它如何知道,用户名将显示在句子中的什么位置 我真的很困惑,因为我不知道从哪里开始,如何开始。 是否有类似于我的需求的开源命令系统?您需要自己为命令定义语法。例如,禁令的/ban 首先检查消息是否以斜杠开头。如果是这样,那就是命令 现在搜索第一个空格,斜杠后面和空格前面的所有内容都是命
/ban
$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,请将每个命令作为一个类,并为所有命令使用一个接口以要求使用适当的方法。e、 g:
interface Command {
public function setParameters($parameters);
public function hasPermission();
public function execute();
}
所有消息都应发送到服务器 也就是说,如果消息是“您好,欢迎收看频道”-这应该被解释为服务器上的
MSG
命令
您应该有一个命令
解析器服务器端来处理消息类型。例如,如果传递了MSG
消息,则将其发送到MessageParser
。如果向上传递了/
命令,则将其发送到命令分析器
ban
命令应采用以下形式:
/ban username
在服务器端级别,您应该检查尝试执行命令的用户是否是操作员,如果他/她正在查找用户名的IP地址,并将其添加到服务器上的黑名单中 如果你自己将命令定义为
/ban user
,那么解析输入字符串就相当简单了。你正在开发系统,所以它的工作方式取决于你自己……我一生中从未做过这样的事情,我对如何做没有任何想法,Crush。因此,我需要一些关于如何处理它的解释、例子、来源和更多有用的东西。@JonyKale你是在要求我们设计你的系统吗?我不明白你的问题。你是在问其他聊天程序是如何处理的吗?不,伙计,我是在问关于如何构建这个的解释和建议。例如,用户编写了一个字符串,/ban username。我不知道如何确定/ban是命令,username是用户名。你似乎对他是如何做到这一点非常权威。我不确定有没有一种方法可以做到这一点——这最终取决于他的决定。@crush——有多种方法可以做到这一点。我自己用ASP.netmvc
实现了这样一个系统,所以我只是根据我的经验提供一个答案。OP可以按照他/她希望的方式自由实施,我试图为他们指出正确的方向。