环境 tp5中安装workerman (看tp5手册安装)
php 层代码
<?php
namespace app\wxone\controller;
use Workerman\Worker;
use Workerman\Connection\TcpConnection;
use Workerman\Lib\Timer;
class Workers
{
public function index()
{
// 证书最好是申请的证书
$context = array(
'ssl' => array(
// 使用绝对路径
'local_cert' => '/www/wwwroot/workerman-chat/txkuaiyou.com_bundle.pem', // 也可以是crt文件
'local_pk' => '/www/wwwroot/workerman-chat/txkuaiyou.com.key',
'verify_peer' => false,
)
);
// 这里设置的是websocket协议
$worker = new Worker('websocket://0.0.0.0:2346 ', $context);
// 设置transport开启ssl,websocket+ssl即wss
$worker->transport = 'ssl';
$worker->onMessage = function($con, $msg) {
$con->send('ok');
};
Worker::runAll();
}
}
创一个入口文件 代码如下
#!/usr/bin/env php
<?php
define('APP_PATH', __DIR__ . '/application/');
define('BIND_MODULE','wxone/Workers/index'); //workers是控制器 index是方法(代码和public里面的入口文件代码一样 主要就是多了这一行)
// 加载框架引导文件
require __DIR__ . '/thinkphp/start.php';
然后直接在tp5目录里 执行 php server.php start (这里我新创建的文件名 叫server.php 可以自己随便命名)
小程序代码
wx.connectSocket({
url: 'wss://www.oicqzone.com:4431'
});
wx.onSocketOpen(function(res) {
console.log("连接成功");
wx.sendSocketMessage('tom');
console.log("给服务端发送一个字符串:tom");
});
wx.onSocketMessage(function(res) {
console.log("收到服务端的消息:" + res.data);
});