메시지 푸시에 Workererman을 사용하는 방법

藏色散人
풀어 주다: 2021-02-01 12:07:26
앞으로
4248명이 탐색했습니다.

다음 칼럼에서는workerman Tutorial에서 Workerman을 사용하여 메시지를 푸시하는 방법을 소개하겠습니다. 필요한 친구들에게 도움이 되길 바랍니다!

메시지 푸시에 Workererman을 사용하는 방법

Workerman은 순수하게 PHP로만 개발된 오픈 소스 고성능 PHP 소켓 서버 프레임워크입니다. 모바일 앱, 모바일 통신, WeChat 애플릿, 모바일 게임 서버, 온라인 게임, PHP 채팅방, 하드웨어 통신, 스마트 홈, 차량 인터넷, 사물 인터넷 및 기타 분야의 개발에 널리 사용됩니다.

TCP 긴 연결을 지원하고 Websocket, HTTP 및 기타 프로토콜을 지원하며 사용자 정의 프로토콜을 지원합니다. 비동기 Mysql, 비동기 Redis, 비동기 Http, 비동기 메시지 대기열 등과 같은 많은 고성능 구성 요소가 있습니다. 비슷한 것으로는 swoole과 MeepoPS가 있습니다.

먼저 Workererman의 웹 메시지 푸시 시스템 web-msg-sender를 다운로드하세요.

# wget http://www.workerman.net/download/senderzip # unzip senderzip #cd web-msg-sender #vim start.php
로그인 후 복사
use Workerman\Worker; // composer 的 autoload 文件 include __DIR__ . '/vendor/autoload.php'; if(strpos(strtolower(PHP_OS), 'win') === 0) { exit("start.php not support windows, please use start_for_win.bat\n"); } // 标记是全局启动 define('GLOBAL_START', 1); // 加载IO 和 Web require_once __DIR__ . '/start_io.php'; 可以注释掉 webServer 服务 没什么用 省点资源 // require_once __DIR__ . '/start_web.php'; // 运行所有服务 Worker::runAll();
로그인 후 복사

Save

#vim start_io.php 找到 将端口改成你要监听的端口 我是2120 记住要在安全组里入方向添加白名单 // PHPSocketIO服务 $sender_io = new SocketIO(2120); 服务端设置完毕后 #php start.php start -d //开启服务 并保持进程
로그인 후 복사

Push 클래스 저는 tp5를 사용합니다

setUser($user_id)->setContent($string)->push();//连贯操作 * * Class WebSocket * @package app\index\moudel; */ class WebSocket { /** * @var string 目标用户id */ protected $to_user = ''; /** * @var string 推送服务地址 */ protected $push_api_url = 'http://127.0.0.1:2000'; /** * @var string 推送内容 */ protected $content = ''; /** * 设置推送用户,若参数留空则推送到所有在线用户 * * @param string $user * @return $this */ public function setUser($user = '') { $this->to_user = $user ? : ''; return $this; } /** * 设置推送内容 * * @param string $content * @return $this */ public function setContent($content = '') { $this->content = $content; return $this; } /** * 推送 */ public function push() { $data = [ 'type' => 'publish', 'content' => $this->content, 'to' => $this->to_user, ]; // var_dump($data); // var_dump($this->push_api_url); $ch = curl_init (); curl_setopt($ch, CURLOPT_URL, $this->push_api_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:')); $res = curl_exec($ch); curl_close($ch); dump($res); } }
로그인 후 복사

조작 컨트롤러

setUser($uid)->setContent($string)->push(); } /** * 推送目标页 * * @return \think\response\View */ public function targetPage(){ return view(); } }
로그인 후 복사

푸시 대상의 프런트엔드 표시

    Title 
   

로그인 후 복사
http://我自己的域名/index/index/pushAString?uid=123 ok 为推送成功 offline 为未在线 fail 为失败
로그인 후 복사

프런트엔드 성공 표시 321은 내 맞춤형 UID입니다

메시지 푸시에 Workererman을 사용하는 방법

위 내용은 메시지 푸시에 Workererman을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:csdn.net
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!