> 위챗 애플릿 > 미니 프로그램 개발 > LayuiAdmin&LayIM&Thinkphp&Gateway를 통해 미니 프로그램에 대한 여러 고객 서비스 액세스 시스템을 구현하는 방법의 예

LayuiAdmin&LayIM&Thinkphp&Gateway를 통해 미니 프로그램에 대한 여러 고객 서비스 액세스 시스템을 구현하는 방법의 예

不言
풀어 주다: 2018-08-25 09:25:10
원래의
5589명이 탐색했습니다.

이 글은 LayuiAdmin&LayIM&Thinkphp&Gateway를 통해 미니 프로그램에 대한 여러 고객 서비스 액세스 시스템을 구현하는 방법에 대한 예를 제공합니다. 도움이 필요한 친구들이 참고할 수 있기를 바랍니다.

먼저 렌더링을 살펴보겠습니다.

LayuiAdmin&LayIM&Thinkphp&Gateway를 통해 미니 프로그램에 대한 여러 고객 서비스 액세스 시스템을 구현하는 방법의 예 구현된 기능:

1. 미니 프로그램 고객 서비스 대화를 실시간으로 수신하여 레이임으로 푸시합니다
2. 미니 프로그램 고객 서비스 대화는 레이임
3을 통해 실시간으로 응답할 수 있습니다. 서비스 대화를 추가할 수 있습니다
4 온라인 고객 서비스는 대화를 순서대로 할당하며, 고객 서비스가 온라인이 아닌 경우 메시지에 따라 처리됩니다.
5 자동 응답 기능

구현 논리:

openid를 사용합니다. WeChat 방문자를 고유 식별자로 사용하여 새로운 Laim 사용자를 생성하고 고객 서비스의 친구로 만듭니다. 백엔드 TP는 메시지 수신 및 전달을 위한 중간 계층 역할을 합니다.

구현 단계(게이트웨이 부분에 중점):

1. TP 설치, 작곡가 설치 작업자, 게이트웨이

2. TP의 루트 디렉터리에 server.php를 만듭니다(다른 이름도 가능) #!/usr/ bin/env php

<?php
ini_set(&#39;display_errors&#39;, &#39;on&#39;);
if(strpos(strtolower(PHP_OS), &#39;win&#39;) === 0)
{
    exit("start.php not support windows.\n");
}
// 检查扩展
if(!extension_loaded(&#39;pcntl&#39;))
{
    exit("Please install pcntl extension. See http://doc3.workerman.net/appendices/install-extension.html\n");
}
if(!extension_loaded(&#39;posix&#39;))
{
    exit("Please install posix extension. See http://doc3.workerman.net/appendices/install-extension.html\n");
}
define(&#39;APP_PATH&#39;, __DIR__ . &#39;/application/&#39;);//如果修改了也要跟着修改,tp的application
define(&#39;BIND_MODULE&#39;,&#39;chat/Run&#39;);//这个位置是你唯一要自定义的
// 加载框架引导文件
require __DIR__ . &#39;/thinkphp/start.php&#39;;
로그인 후 복사

3. tp의 애플리케이션 디렉토리에 모듈 chat을 생성하고 Events의 네임스페이스를 제외하고는 기본적으로 다른 것을 변경할 필요가 없습니다. .gateway

class Run
{
    public function __construct()
    {
        //注册register
        new Register(&#39;text://0.0.0.0:1236&#39;);
        //初始化 bussinessWorker 进程
        $worker = new BusinessWorker();
        $worker->name = &#39;WebIMBusinessWorker&#39;;
        $worker->count = 4;
        $worker->registerAddress = &#39;127.0.0.1:1236&#39;;
        //设置处理业务的类,此处制定Events的命名空间
        $worker->eventHandler = &#39;\app\chat\controller\Events&#39;;
        // 初始化 gateway 进程
        $gateway = new Gateway("websocket://0.0.0.0:8282");
        $gateway->name = &#39;WebIMGateway&#39;;
        $gateway->count = 4;
        $gateway->lanIp = &#39;127.0.0.1&#39;;
        $gateway->startPort = 2900;
        $gateway->registerAddress = &#39;127.0.0.1:1236&#39;;
        $gateway->pingInterval = 55;
        $gateway->pingNotResponseLimit = 1;
        $gateway->pingData = &#39;{"emit":"ping"}&#39;;//此处为心跳包数据
        //运行所有Worker;
        if(!defined(&#39;GLOBAL_START&#39;))
        {
            Worker::runAll();
        }
    }
}
로그인 후 복사

4의 기본 클래스를 사용하는 것이 좋습니다. Event.php는 주요 논리 처리 클래스입니다. 여기서는 onmessage 메서드에 대해 간단히 설명하겠습니다. JWT 인증을 사용하고 있기 때문에 여기서 우회하는 경우가 많습니다. 첫 번째 수준에서는 먼저 token을 통해layuiadmin의 uid를 찾은 다음 uid를 통해 고객 서비스 ID를 찾고 고객 서비스 ID를 client_id에 바인딩합니다. 백엔드 PHP에서 메시지를 푸시하기 위해 직접 Gateway::sendToUid를 사용할 수 있습니다.

5. tp 백엔드, GatewayClient를 사용하여 메시지를 푸시해야 하는 곳에 메시지를 적극적으로 푸시합니다.

메시지 수신의 전체 과정은 다음과 같습니다. WeChat 개방형 인터페이스가 메시지 푸시 인터페이스 URL을 요청하고 → PHP가 데이터를 가져와 저장하고 GatewayClient를 통해 지정된 고객 서비스에 적극적으로 푸시합니다. → 프런트 엔드가 데이터를 가져와 렌더링합니다. to the view throughlayim

사실 이번 이벤트는 PHP에서 두 가지만 했는데, 하나는 하트비트 감지였고, 다른 하나는 로그인 후 고객 서비스 ID와 client_id를 바인딩하는 것이었습니다.

메시지를 보낼 때 웹소켓 대신 ajax http 방식을 사용합니다.

구현되지 않은 기능:

메시지 상태 처리, 읽지 않음/읽음

layim 보이지 않음/온라인

현재 문자 메시지만 있고 사진, 카드 메시지는 없음

관련 권장 사항:

WeChat 애플릿 로봇 자동 고객 서비스 기능


WeChat 공개 플랫폼 개발: 다중 고객 서비스 인터페이스 설명

위 내용은 LayuiAdmin&LayIM&Thinkphp&Gateway를 통해 미니 프로그램에 대한 여러 고객 서비스 액세스 시스템을 구현하는 방법의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿