Workerman和ThinkPHP5的结合使用

2017-09-23  本文已影响1127人  boystark

最近学习使用Workerman,框架使用ThinkPHP5.参考官网ThinkPHP5.0完全开发手册完全不知所云!幸好自己摸索得出经验,一下为参考方法。

composer require topthink/think-worker
composer require workerman/workerman-for-win

(注意环境为linux,所以如果你时windows,请composer require workerman/workerman-for-win)

<?php
define('APP_PATH', __DIR__ . '/application/');

//其实和index.php文件内容一样,不过多绑定了一个模块用于server启动
define('BIND_MODULE','server/index/index');

require __DIR__ . '/thinkphp/start.php';
<?php

namespace app\sever\controller;

use Workerman\Worker;

class Index
{
    // 创建一个Worker监听2346端口,使用websocket协议通讯
    $ws_worker = new Worker("websocket://0.0.0.0:2346");
    public function index()
    {

        // 创建一个Worker监听2346端口,使用websocket协议通讯
        $ws_worker = new Worker("websocket://0.0.0.0:2346");

        // 启动4个进程对外提供服务
        $ws_worker->count = 4;

        // 当收到客户端发来的数据后返回hello $data给客户端
        $ws_worker->onMessage = function($connection, $data)
        {
            // 向客户端发送hello $data
            $connection->send('Hello: ' . $data);
        };

        // 运行worker
        Worker::runAll();
    }
  

php server.php start

ws = new WebSocket("ws://push.app:2346");
ws.onopen = function() {
    alert("连接成功");
    ws.send('tom');
    alert("给服务端发送一个字符串:tom");
};
ws.onmessage = function(e) {
    alert("收到服务端的消息:" + e.data);
};
ws.send('保持连接,发第二次信息,查看服务器回应');
上一篇下一篇

猜你喜欢

热点阅读