不用任何框架,使用workerman简单配置websocket服务器

2023-05-25 18:06:07 浏览638次 作者: 李狗蛋

收藏

第一步,准备一个centos服务器,安装好宝塔,php7.4和apache,当然,你安装nginx也可以,我这边是用的vmware安装的宝塔,另外,服务器上要安装composer

第二步,新建一个宝塔网站,我本地linux虚拟机的ip我给固定了,是:192.168.2.128,所以我直接建立了一个网站,文件夹叫sockets,域名就是:192.168.1.128

第三步,配置apache转发,这样访问websocket端口时候就不用输入端口号了,我们先自定义一个端口号,就叫3333吧,如果你是用服务器,防火墙和服务器安全组别忘了开这个3333端口,具体配置如下图:

1.png

为了防止你不会,我直接把代码贴出来:

    ProxyPass /wss ws://127.0.0.1:3333

    ProxyPassReverse /wss ws://127.0.0.1:3333

第四步,进入刚才创建的网站目录(cd /www/wwwroot/sockets),然后运行:composer require workerman/workerman,这样就把workerman下载下来了

第五步:在/www/wwwroot/sockets新建php文件,名字叫做:start.php,内容为:

<?php
use Workerman\Worker;
require_once __DIR__ . '/vendor/autoload.php';
// Create a Websocket server
$ws_worker = new Worker('websocket://127.0.0.1:3333');
// Emitted when new connection come
$ws_worker->onConnect = function ($connection) {
    echo "New connection\n";
};
// Emitted when data received
$ws_worker->onMessage = function ($connection, $data) {
    // Send hello $data
    $connection->send('Hello ' . $data);
};
// Emitted when connection closed
$ws_worker->onClose = function ($connection) {
    echo "Connection closed\n";
};
// Run worker
Worker::runAll();

第六步:在宝塔的应用商店安装“进程守护管理器”,并配置如下图:

1.png

至此就配置完成,然后找接口测试工具测试一下,大家都在用的是:http://www.jsons.cn/websocket/ ,测试方式如下图:

1.png

可以发一条消息试试:

1.png

然后您就可以根据您的需求,进行前后端代码的编写了,因为前端代码我这边没写,只是搭建了一个服务器,不过前端代码都差不多,我贴一个例子把:

var ws = new WebSocket("ws://localhost:8080"); 
//申请一个WebSocket对象,参数是服务端地址,同http协议使用http://开头一样,WebSocket协议的url使用ws://开头,另外安全的WebSocket协议使用wss://开头ws.onopen = function(){
  //当WebSocket创建成功时,触发onopen事件
   console.log("open");
  ws.send("hello"); //将消息发送到服务端}
ws.onmessage = function(e){
  //当客户端收到服务端发来的消息时,触发onmessage事件,参数e.data包含server传递过来的数据
  console.log(e.data);
}
ws.onclose = function(e){
  //当客户端收到服务端发送的关闭连接请求时,触发onclose事件
  console.log("close");
}
ws.onerror = function(e){
  //如果出现连接、处理、接收、发送数据失败的时候触发onerror事件
  console.log(error);
}


当您发现内容错误或代码bug,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。

收藏 分享

相关文章

评论:

文明上网理性发言,请遵守 新闻评论服务协议

当前还没有评论,快来评论吧

上报错误