php ws协议_ws协议 · workerman手册 · 看云

# ws协议

目前Workerman的ws协议版本为13

workerman可以作为客户端通过ws协议发起websocket连接,连到远程websocket服务器,实现双向通讯。

**注意:**ws协议只能通过AsyncTcpConnection作为客户端使用,不能作为websocket服务端监听协议。也就是说以下写法是错误的。

```php

$worker = new Worker('ws://0.0.0.0:8080');

```

如果想workerman作为websocket服务端,请使用[websocket协议](about-websocket.md)。

**ws作为websocket客户端协议示例:**

```php

use Workerman\Worker;

use Workerman\Connection\AsyncTcpConnection;

require_once __DIR__ . '/Workerman/Autoloader.php';

$worker = new Worker();

// 进程启动时

$worker->onWorkerStart = function()

{

// 以websocket协议连接远程websocket服务器

$ws_connection = new AsyncTcpConnection("ws://echo.websocket.org:80");

// 连上后发送hello字符串

$ws_connection->onConnect = function($connection){

$connection->send('hello');

};

// 远程websocket服务器发来消息时

$ws_connection->onMessage = function($connection, $data){

echo "recv: $data\n";

};

// 连接上发生错误时,一般是连接远程websocket服务器失败错误

$ws_connection->onError = function($connection, $code, $msg){

echo "error: $msg\n";

};

// 当连接远程websocket服务器的连接断开时

$ws_connection->onClose = function($connection){

echo "connection closed\n";

};

// 设置好以上各种回调后,执行连接操作

$ws_connection->connect();

};

Worker::runAll();

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现基于Websocket 协议PHP类库 和 javascript类库 , 实现事件 回调函数的架构开发,以一个简单聊天室实例介绍其使用方法: 不同浏览器,不同电脑,不同地域, 实时通讯。实现的详细 请研究源码。 /***服务端****/ /**  * 实例化  */ $io = new SocketIO('127.0.0.1',8000); /**  * 监听连接  */ $io->on('connect',function($ws,$uid){ $msg = "任意数据类型,结构需要和前端协议,便于通信";     $ws->broadcast(evet, $msg);     //$ws->emit(evet, $uid, $msg); }); /**  * 任意事件,与前端协议好,// evet 由开发者定义  */ $io->on('event',function($ws,$uid,$msg){     $msg = "任意数据类型,结构需要和前端协议,便于通信";     $ws->broadcast(evet, $msg); }); /* * 关闭 */ $io->on('close',function($ws,$uid,$err){     // evet 由开发者定义     $msg = "任意数据类型,结构需要和前端协议,便于通信";     $ws->broadcast('close', $msg); }); /**  * 启动  */ $io->run();   /*** 客户端 ***/ var io = new SocketIO('127.0.0.1',8000); io.on('connect',function(){      console.log('open');      // 发出请求, event 由开发者定义      io.emit(event, user, function(ok){           if(ok){                        }else{                           }      });      // 收到消息, event 由开发者定义      io.on(event, function(msg){                        console.log(msg);      });      //关闭事件  io.on('close', function(){ }); }); 标签:phpws
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值