当前位置: 旋风说(旋风PHPer分享网)> 技术文章> 正文
第一步,准备一个centos服务器,安装好宝塔,php7.4和apache,当然,你安装nginx也可以,我这边是用的vmware安装的宝塔,另外,服务器上要安装composer
第二步,新建一个宝塔网站,我本地linux虚拟机的ip我给固定了,是:192.168.2.128,所以我直接建立了一个网站,文件夹叫sockets,域名就是:192.168.1.128
第三步,配置apache转发,这样访问websocket端口时候就不用输入端口号了,我们先自定义一个端口号,就叫3333吧,如果你是用服务器,防火墙和服务器安全组别忘了开这个3333端口,具体配置如下图:
为了防止你不会,我直接把代码贴出来:
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();
第六步:在宝塔的应用商店安装“进程守护管理器”,并配置如下图:
至此就配置完成,然后找接口测试工具测试一下,大家都在用的是:http://www.jsons.cn/websocket/ ,测试方式如下图:
可以发一条消息试试:
然后您就可以根据您的需求,进行前后端代码的编写了,因为前端代码我这边没写,只是搭建了一个服务器,不过前端代码都差不多,我贴一个例子把:
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,以及下载链接无法使用等,请点击屏幕右下角的上报错误来进行提交,我们会尽快修正。
本程序所有源码和工具完全免费,当本网站内容如果侵犯了您的权益,请联系我们,我们会尽快处理,感谢您的合作。
上一篇: centos虚拟机如何固定ip
下一篇: centos卸载node
相关文章
评论:
文明上网理性发言,请遵守 新闻评论服务协议