利用php的swoole简单实现了webSocket(入门菜鸟)
首先,我在我服务器上照着官方的教程安装了swoole扩展,不容易啊,中间出现了很多波折,php装的版本还是一个大问题,enjoy the process to install swoole extension.
Swoole官方链接:https://www.swoole.com/
文档链接:https://wiki.swoole.com/
webSocket链接:https://wiki.swoole.com/wiki/page/397.html
下面是我写的服务器上面的ws.php(其实就是拷贝一下官方的例子就行):
<?php
$server = new swoole_websocket_server("0.0.0.0",9200);$server->on('open',function(swoole_websocket_server $server,$request){echo "server: handshake success with fd{$request->fd}\n";
});$server->on('message',function(swoole_websocket_server $server,$frame){echo "receive from {$frame->fd}:{$frame->data}";echo "opcode:{$frame->opcode}";echo "fin: {$frame->finish}\n";$server->push($frame->fd,"this is a server");
});$server->on('close',function($ser,$fd){echo "client {$fd} closed\n";
});$server->start();
?>
这里我设置的是0.0.0.0,为的是可以远程访问,如果你是在自己电脑上安装了PHP环境并且安装了swoole扩展,可以直接使用localhost,端口我设置的是9200,你可以设置为一个你想设置的端口,只要不和现有的端口冲突就行。
这样的话,我在服务器上面运行这个文件:
php ws.php
这样服务器上面就正在运行一个swoole server,等待着客户端的连接请求。
OK,做到这里你已经成功了一大半了,很棒的说!
下面就是测试了,这很有趣的,因为你吃了很多苦头,现在正是收货的时候了哈哈。
本地新建文件testWebSocket.html,上代码:
<!doctype html>
<html>
<head><title>测试WebSocket</title>
</head><body><script>var ws = new WebSocket("ws://120.79.70.19:9200");ws.onopen = function(event){console.log("客户端已连接上!");ws.send("hello server,this is client!");};ws.onmessage= function(event){console.log("服务器传过来的数据是:"+event.data);}ws.onclose = function(event){console.log("连接已关闭");};</script>
</body></html>
写完之后执行在浏览器打开这个html文件,打开console,你就会看到:
成功!
祝贺!
我们再来看看服务器上:
我们可以看到先建立连接也就是握手然后收到客户端发来的消息,然后给客户端回了消息,然后浏览器关闭了html文件的时候就代表这个连接已经关闭。
我刚开始接触websocket,认为应该就是服务器可以主动给客户端发消息了吧。啃书去…
end.
利用php的swoole简单实现了webSocket(入门菜鸟)相关推荐
- android实现计算器功能吗,利用Android实现一个简单的计算器功能
利用Android实现一个简单的计算器功能 发布时间:2020-11-20 16:25:01 来源:亿速云 阅读:90 作者:Leah 今天就跟大家聊聊有关利用Android实现一个简单的计算器功能, ...
- 利用逻辑回归进行简单的人群分类解决广告推荐问题
利用逻辑回归进行简单的人群分类解决广告推荐问题 参考文章: (1)利用逻辑回归进行简单的人群分类解决广告推荐问题 (2)https://www.cnblogs.com/songyifan427/p/1 ...
- python推荐系统-利用python构建一个简单的推荐系统
摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...
- Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来
Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*- ''' Created ...
- 基于python的系统构建_利用python构建一个简单的推荐系统
摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...
- java调python 监控_利用Python实现一个简单的系统监控图表
作为运维人员,想必大家肯定都做过这样的事情:为了监控系统资源使用情况,开了若干个窗口,来回切换看输出: 只要我切得够快,性能异常点就逃不过我的眼睛! 这个时候你要是有个监控工具自然是很好的,例如我们美 ...
- php fsockopen socket,PHP利用socket(fsockopen)的简单示例
这篇文章主要为大家详细介绍了PHP利用socket(fsockopen)的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!fsockopen函数 ...
- 利用Bing翻译API简单的实现一个翻译工具
常见的翻译服务提供商有Google和微软,它们的在线翻译地址如下: Bing翻译: http://www.microsofttranslator.com/?FORM=R5FD Google翻译: ht ...
- python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?
原标题:技术图文:如何利用 Python 做一个简单的定时器类? 背景 今天在B站上看有关 Python 最火的一个教学视频 -- "零基础入门学习 Python",这也是我们 P ...
最新文章
- Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议
- 如何把 Word 中的表格快速插入 LaTeX?
- 7个IntelliJ IDEA必备插件,提高编码效率
- c语言关于计算的函数,问个c语言题目,关于一个计算器的有参有返回函数!!!...
- 自身经历第二次面试(阿里)
- 通用职责分配软件原则之7-纯虚构原则
- php自动加载基类文件
- thread.sleep是让哪个线程休眠_java多线程必看:java线程的生命周期
- oracle 中EXP、IMP 命令详解
- Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1...
- Vue使用html2canvas将Dom转化为图片
- ubuntu 新建用户
- MVC Area领域处理以及T4MVC的使用
- Unity3D跑马灯脚本
- Java Instrument 功能使用及原理
- 10 05 05 繁杂
- 华为的冬天----任正非
- windows分类及安装
- java学习视频分享
- Ps-制作二级页面总结