perf: 单条消息最长2000个字符,超过自动分割发送,总最长20000

This commit is contained in:
kuaifan
2022-02-12 17:00:09 +08:00
parent 8f1fbcb19e
commit ce70c1ca3a
45 changed files with 46 additions and 1886 deletions

View File

@@ -189,7 +189,7 @@ class DialogController extends AbstractController
}
/**
* @api {get} api/dialog/msg/sendtext 06. 发送消息
* @api {post} api/dialog/msg/sendtext 06. 发送消息
*
* @apiDescription 需要token身份
* @apiVersion 1.0.0
@@ -205,6 +205,7 @@ class DialogController extends AbstractController
*/
public function msg__sendtext()
{
Base::checkClientVersion('0.8.1');
$user = User::auth();
//
$chat_nickname = Base::settingFind('system', 'chat_nickname');
@@ -215,8 +216,8 @@ class DialogController extends AbstractController
}
}
//
$dialog_id = intval(Request::input('dialog_id'));
$text = trim(Request::input('text'));
$dialog_id = Base::getPostInt('dialog_id');
$text = trim(Base::getPostValue('text'));
//
if (mb_strlen($text) < 1) {
return Base::retError('消息内容不能为空');
@@ -226,11 +227,21 @@ class DialogController extends AbstractController
//
WebSocketDialog::checkDialog($dialog_id);
//
$msg = [
'text' => $text
];
if (mb_strlen($text) > 2000) {
$array = mb_str_split($text, 2000);
} else {
$array = [$text];
}
//
return WebSocketDialogMsg::sendMsg($dialog_id, 'text', $msg, $user->userid);
$list = [];
foreach ($array as $item) {
$res = WebSocketDialogMsg::sendMsg($dialog_id, 'text', ['text' => $item], $user->userid);
if (Base::isSuccess($res)) {
$list[] = $res['data'];
}
}
//
return Base::retSuccess('发送成功', $list);
}
/**