> PHP 프레임워크 > Workerman > WorkerMan Connection 클래스 사용(코드 포함)

WorkerMan Connection 클래스 사용(코드 포함)

풀어 주다: 2019-11-26 16:34:06
앞으로
3151명이 탐색했습니다.

다음 칼럼에서는 workerman tutorial 칼럼에서 WorkerMan Connection 클래스의 사용법을 모두에게 소개하겠습니다. 도움이 필요한 친구들에게 도움이 되길 바랍니다!

WorkerMan Connection 클래스 사용(코드 포함)

1. TcpConnection 클래스 사용

1. 간단한 TCP 테스트#🎜 🎜 #

Server.php

<?php
require_once __DIR__.&#39;/Workerman/Autoloader.php&#39;;
use Workerman\Worker;
$worker = new Worker(&#39;websocket://0.0.0.0:80&#39;);// 连接回调
$worker->onConnect = function ($connection){
     echo "connection success\n";
};
// 接受发送消息
$worker->onMessage = function ($conn,$data){
    $conn->send("Hello World");
};
// 关闭连接
$worker->onClose = function ($connection){
    echo "connection close \n";
};
$worker::runAll();
로그인 후 복사

테스트 결과:

WorkerMan Connection 클래스 사용(코드 포함)

서버 출력:

# 🎜🎜 #

WorkerMan Connection 클래스 사용(코드 포함)다음 오류는 내부 연결 프로토콜이 수정되지 않았음을 나타냅니다.

www@iZ23s8agtagZ:~$ telnet 127.0.0.1 8085
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is &#39;^]&#39;.
^[[A^[[A
HTTP/1.1 400 Bad Request

<b>400 Bad Request</b><br>Invalid handshake data for websocket. <br> See <a href="http://wiki.workerman.net/Error1">http://wiki.workerman.net/Error1</a> for detail.Connection closed by foreign host.
로그인 후 복사

2. 흑백 목록에 대한 액세스

Server.php

<?php
require_once __DIR__.&#39;/Workerman/Autoloader.php&#39;;
use Workerman\Worker;
$worker = new Worker(&#39;tcp://0.0.0.0:8085&#39;);
// 连接回调
$worker->onConnect = function ($connection){
    // IP 白名单验证
    if($connection->getRemoteIP() != &#39;127.0.0.1&#39;){
        $connection->close("IP Address Forbidden");
    }
};
// 接受发送消息
$worker->onMessage = function ($conn,$data){
    $conn->send("Hello World");
};
// 关闭连接
$worker->onClose = function ($connection){
    echo "connection close \n";
};
$worker::runAll();
로그인 후 복사

Workerman 서비스 열기

#🎜 🎜#

올바른 액세스: WorkerMan Connection 클래스 사용(코드 포함)

WorkerMan Connection 클래스 사용(코드 포함)

비로컬 주소 액세스 : # 🎜🎜#WorkerMan Connection 클래스 사용(코드 포함)

2. AsyncTcpConnection 클래스 사용WorkerMan Connection 클래스 사용(코드 포함)

Server.php

<?php
require_once __DIR__.&#39;/Workerman/Autoloader.php&#39;;
use Workerman\Worker;
$worker = new Worker(&#39;websocket://0.0.0.0:443&#39;);
// Workerman 启动的回调,这里传递的是Worker对象
$worker->onWorkerStart = function ($worker){
    echo "onWorkerStart success";
};
// 连接回调
$worker->onConnect = function ($connection){
    $connection_baidu = new \Workerman\Connection\AsyncTcpConnection(&#39;tcp://www.baidu.com:443&#39;);
    // 百度的数据发送给浏览器。返回数据后,使用的数据要use 进来,
    $connection_baidu->onMessage = function ($connection_baidu,$data) use ($connection){
        $connection->send($data);
    };
    // 浏览器接受的数据发送给百度
    $connection->onMessage = function ($connection,$data) use ($connection_baidu){
        $connection_baidu->send($data);
    };
    $connection_baidu->connect();
};
// 接受发送消息
$worker->onMessage = function ($conn,$data){
    $conn->send("Hello World");
};
// 关闭连接
$worker->onClose = function ($connection){
    echo "connection close \n";
};

//Workerman 停止回调
$worker->onWorkerStop = function ($worker){
    echo "onWorkerStop success";
};
$worker::runAll();
로그인 후 복사
# 🎜🎜#WorkerMan 관련 기사를 더 보려면 WorkerMan 사용 튜토리얼

열을 주목해 주세요.

위 내용은 WorkerMan Connection 클래스 사용(코드 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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