首先,我在我服务器上照着官方的教程安装了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(入门菜鸟)相关推荐

  1. android实现计算器功能吗,利用Android实现一个简单的计算器功能

    利用Android实现一个简单的计算器功能 发布时间:2020-11-20 16:25:01 来源:亿速云 阅读:90 作者:Leah 今天就跟大家聊聊有关利用Android实现一个简单的计算器功能, ...

  2. 利用逻辑回归进行简单的人群分类解决广告推荐问题

    利用逻辑回归进行简单的人群分类解决广告推荐问题 参考文章: (1)利用逻辑回归进行简单的人群分类解决广告推荐问题 (2)https://www.cnblogs.com/songyifan427/p/1 ...

  3. python推荐系统-利用python构建一个简单的推荐系统

    摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...

  4. Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来

    Py:python利用easygui实现最简单GUI带你学习区块链技术的发展和由来 目录 输出结果 实现代码 输出结果 实现代码 # -*- coding: utf-8 -*- ''' Created ...

  5. 基于python的系统构建_利用python构建一个简单的推荐系统

    摘要: 快利用python构建一个属于你自己的推荐系统吧,手把手教学,够简单够酷炫. 本文将利用python构建一个简单的推荐系统,在此之前读者需要对pandas和numpy等数据分析包有所了解. 什 ...

  6. java调python 监控_利用Python实现一个简单的系统监控图表

    作为运维人员,想必大家肯定都做过这样的事情:为了监控系统资源使用情况,开了若干个窗口,来回切换看输出: 只要我切得够快,性能异常点就逃不过我的眼睛! 这个时候你要是有个监控工具自然是很好的,例如我们美 ...

  7. php fsockopen socket,PHP利用socket(fsockopen)的简单示例

    这篇文章主要为大家详细介绍了PHP利用socket(fsockopen)的简单示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!fsockopen函数 ...

  8. 利用Bing翻译API简单的实现一个翻译工具

    常见的翻译服务提供商有Google和微软,它们的在线翻译地址如下: Bing翻译: http://www.microsofttranslator.com/?FORM=R5FD Google翻译: ht ...

  9. python自己做个定时器_技术图文:如何利用 Python 做一个简单的定时器类?

    原标题:技术图文:如何利用 Python 做一个简单的定时器类? 背景 今天在B站上看有关 Python 最火的一个教学视频 -- "零基础入门学习 Python",这也是我们 P ...

最新文章

  1. Wix 安装部署教程(十四) -- 多语言安装包之用户许可协议
  2. 如何把 Word 中的表格快速插入 LaTeX?
  3. 7个IntelliJ IDEA必备插件,提高编码效率
  4. c语言关于计算的函数,问个c语言题目,关于一个计算器的有参有返回函数!!!...
  5. 自身经历第二次面试(阿里)
  6. 通用职责分配软件原则之7-纯虚构原则
  7. php自动加载基类文件
  8. thread.sleep是让哪个线程休眠_java多线程必看:java线程的生命周期
  9. oracle 中EXP、IMP 命令详解
  10. Microsoft .NET Framework 2.0对文件传输协议(FTP)操作(上传,下载,新建,删除,FTP间传送文件等)实现汇总1...
  11. Vue使用html2canvas将Dom转化为图片
  12. ubuntu 新建用户
  13. MVC Area领域处理以及T4MVC的使用
  14. Unity3D跑马灯脚本
  15. Java Instrument 功能使用及原理
  16. 10 05 05 繁杂
  17. 华为的冬天----任正非
  18. windows分类及安装
  19. java学习视频分享
  20. Ps-制作二级页面总结

热门文章

  1. 大学python搜题app_中国大学MOOC的APP慕课用Python玩转数据期末考试搜题公众号答案...
  2. 慕课 php 开发APP接口(三)
  3. 《C Primer Plus》第14章复习题与编程练习
  4. cvHoughLines2霍夫直线检测函数详解及源码解析
  5. 为了偶像羽生结弦学习日语,花6k报的网课,有继承资料的嘛~
  6. python操作字节数组
  7. css动画移动,列表向上滚动不留空白
  8. 打卡3本书10句话-24
  9. 全光谱台灯真的有用吗?2022最新真正的全光谱灯品牌推荐
  10. Scala 自身类型(self-type) 解析