环境:Centos6.4,PHP环境:PHP7

服务端代码

  1. <?php
  2. //创建websocket服务器
  3. $host = '0.0.0.0';
  4. $port = ;
  5. $ws = new swoole_websocket_server($host, $port);
  6.  
  7. //
  8. $ws->on('open', function($ws, $request){ //$ws就是我们的服务器,$request就是客户端的信息
  9. var_dump($request);
  10. $ws->push($request->fd,"welcome \n");
  11. });
  12.  
  13. $ws->on('message', function($ws, $request){
  14. echo 'Message:'. $request->data;
  15. $ws->push($request->fd,'get it message');
  16. });
  17. $ws->on('close', function($ws, $request){
  18. echo 'close';
  19. });
  20.  
  21. $ws->start();

客户端代码

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>WebSecket</title>
  5. </head>
  6. <body>
  7. <Script>
  8. var wsServer = 'ws://192.168.9.155:9501';
  9. var websocket = new WebSocket(wsServer);
  10. websocket.onopen = function (evt) {
  11. console.log("链接成功");
  12. };
  13.  
  14. websocket.onclose = function (evt) {
  15. console.log("关闭链接");
  16. };
  17.  
  18. websocket.onmessage = function (evt) {
  19. console.log('Retrieved data from server: ' + evt.data);
  20. };
  21.  
  22. websocket.onerror = function (evt, e) {
  23. console.log('Error occured: ' + evt.data);
  24. };
  25. </Script>
  26. </body>
  27. </html>

文件分别是index4.php、index4.html,。

出现此状态,没有报错,说明开启成功了。

  1. # ps -ajft //查看进程状态

开始测试

浏览器访问index4.html

  1. closeobject(Swoole\Http\Request)# () {
  2. ["fd"]=>
  3. int()
  4. ["header"]=>
  5. array() {
  6. ["host"]=>
  7. string() "192.168.9.155:9501"
  8. ["connection"]=>
  9. string() "Upgrade"
  10. ["pragma"]=>
  11. string() "no-cache"
  12. ["cache-control"]=>
  13. string() "no-cache"
  14. ["upgrade"]=>
  15. string() "websocket"
  16. ["origin"]=>
  17. string() "http://myec.com"
  18. ["sec-websocket-version"]=>
  19. string() ""
  20. ["user-agent"]=>
  21. string() "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4882.400 QQBrowser/9.7.13059.400"
  22. ["accept-encoding"]=>
  23. string() "gzip, deflate, sdch"
  24. ["accept-language"]=>
  25. string() "zh-CN,zh;q=0.8"
  26. ["sec-websocket-key"]=>
  27. string() "/nsMgwOyqsM5xmgdqpEBRA=="
  28. ["sec-websocket-extensions"]=>
  29. string() "permessage-deflate; client_max_window_bits"
  30. }
  31. ["server"]=>
  32. array() {
  33. ["request_method"]=>
  34. string() "GET"
  35. ["request_uri"]=>
  36. string() "/"
  37. ["path_info"]=>
  38. string() "/"
  39. ["request_time"]=>
  40. int()
  41. ["request_time_float"]=>
  42. float(1522731778.6278)
  43. ["server_port"]=>
  44. int()
  45. ["remote_port"]=>
  46. int()
  47. ["remote_addr"]=>
  48. string() "192.168.9.1"
  49. ["master_time"]=>
  50. int()
  51. ["server_protocol"]=>
  52. string() "HTTP/1.1"
  53. ["server_software"]=>
  54. string() "swoole-http-server"
  55. }
  56. ["request"]=>
  57. NULL
  58. ["cookie"]=>
  59. NULL
  60. ["get"]=>
  61. NULL
  62. ["files"]=>
  63. NULL
  64. ["post"]=>
  65. NULL
  66. ["tmpfiles"]=>
  67. NULL
  68. }

OK~

Swoole学习(五)Swoole之简单WebSocket服务器的创建的更多相关文章

  1. Swoole学习(四)Swoole之简单WEB服务器的创建

    环境:Centos6.4,PHP环境:PHP7 <?php //创建WEB服务器 $host = '0.0.0.0'; $port = ; $server = new swoole_http_s ...

  2. Swoole学习(七)Swoole之异步TCP服务器的创建

    环境:Centos6.4,PHP环境:PHP7 <?php //创建TCP服务器 /** * $host 是swoole需要监听的ip,如果要监听本地,不对外服务,那么就是127.0.0.1;如 ...

  3. Swoole学习(三)Swoole之UDP服务器的创建

    环境:Centos6.4,PHP环境:PHP7 <?php //创建UCP服务器(UDP服务器相对于TCP服务器通信更可靠些) /** * $host 是swoole需要监听的ip,如果要监听本 ...

  4. Swoole学习(二)Swoole之TCP服务器的创建

    环境:Centos6.4,PHP环境:PHP7 <?php //创建TCP服务器 /** * $host 是swoole需要监听的ip,如果要监听本地,不对外服务,那么就是127.0.0.1;如 ...

  5. Netty实现简单WebSocket服务器

    本文参考<Netty权威指南>├── WebSocketServerHandler.java├── WebSocketServer.java└── wsclient.html packag ...

  6. Swoole学习(六)Swoole之定时器的创建与清除

    环境:Centos6.4,PHP环境:PHP7,Swoole2.1(在指定的时间后执行函数,需要1.7.7或更高版本) <?php //----------------------------- ...

  7. 04.swoole学习笔记--webSocket服务器

    <?php //创建webSocket服务器 $serv=); //获取请求 //on //open 建立连接 $serv:服务器 $request:客户端信息 $serv->on('op ...

  8. swoole创建websocket服务器

    目录 1 安装准备 1.1 安装swoole前必须保证系统已经安装了下列软件 1.2 下载并解压 1.3 编译安装成功后,修改php.ini 2 构建Swoole基本实例 2.1 tcp服务器实例 2 ...

  9. 01.swoole学习笔记--TCP服务器

    1.安装swoole扩展 2.网络调试助手进行调试 <?php //创建服务器 $host='192.168.10.31'; $port=; //$model='SWOOLE_PROCESS'; ...

随机推荐

  1. ORA-01078错误解决办法

    ORA-01078: failure in processing system parameters & LRM-00109: could not open parameter file 安装 ...

  2. 【POJ2516】Minimum Cost

    [POJ2516]Minimum Cost 题意:有N个收购商.M个供应商.K种物品.对于每种物品,每个供应商的供应量和每个收购商的需求量已知.每个供应商与每个收购商之间运送该物品的运费已知.求满足收 ...

  3. eclipse控制台不限制显示的行数

    在Preferences中搜索Console,设置Limit console output没有限制即可.

  4. 170313、poi:采用自定义注解的方式导入、导出excel(这种方式比较好扩展)

    步骤一.自定义注解 步骤二.写Excel泛型工具类 步骤三.在需要导出excel的类属相上加上自定义注解,并设置 步骤四.写service,controller 步骤一:自定义注解 import ja ...

  5. UNION DISTINCT

    w同结构表读写合并. DROP PROCEDURE IF EXISTS w_ww_amzasin; DELIMITER /w/ CREATE PROCEDURE w_ww_amzasin() BEGI ...

  6. linux下安装JDK,及配置环境变量

    首先去官网https://www.oracle.com/technetwork/java/javase/downloads/index.html下载最新的JDK版本: 以下操作在root用户下操作 第 ...

  7. VC++SDK编程——模拟时钟

    #include <Windows.h> #include <tchar.h> #include <math.h> typedef struct Time { in ...

  8. 12.Project Fields to Return from Query-官方文档摘录

    1 插入例句 db.inventory.insertMany( [ { item: "journal", status: "A", size: { h: 14, ...

  9. 我不想用for循环

    为什么要挑战自己在代码里不写for loop?因为这样可以迫使你去使用比较高级.地道的语法或库.文中以python为例子,讲了不少大家其实在别人的代码里都见过.但自己很少用的语法. 这是一个挑战.我要 ...

  10. bios设置启动方式问题

    uefi和legacy是两种不同的引导方式,uefi是新式的BIOS,legacy是传统BIOS.你在UEFI模式下安装的系统,只能用UEFI模式引导:同理,如果你是在Legacy模式下安装的系统,也 ...