Swoole学习(五)Swoole之简单WebSocket服务器的创建
环境:Centos6.4,PHP环境:PHP7
服务端代码
<?php
//创建websocket服务器
$host = '0.0.0.0';
$port = ;
$ws = new swoole_websocket_server($host, $port); //
$ws->on('open', function($ws, $request){ //$ws就是我们的服务器,$request就是客户端的信息
var_dump($request);
$ws->push($request->fd,"welcome \n");
}); $ws->on('message', function($ws, $request){
echo 'Message:'. $request->data;
$ws->push($request->fd,'get it message');
});
$ws->on('close', function($ws, $request){
echo 'close';
}); $ws->start();
客户端代码
<!DOCTYPE html>
<html>
<head>
<title>WebSecket</title>
</head>
<body>
<Script>
var wsServer = 'ws://192.168.9.155:9501';
var websocket = new WebSocket(wsServer);
websocket.onopen = function (evt) {
console.log("链接成功");
}; websocket.onclose = function (evt) {
console.log("关闭链接");
}; websocket.onmessage = function (evt) {
console.log('Retrieved data from server: ' + evt.data);
}; websocket.onerror = function (evt, e) {
console.log('Error occured: ' + evt.data);
};
</Script>
</body>
</html>
文件分别是index4.php、index4.html,。

出现此状态,没有报错,说明开启成功了。
# ps -ajft //查看进程状态

开始测试
浏览器访问index4.html

closeobject(Swoole\Http\Request)# () {
["fd"]=>
int()
["header"]=>
array() {
["host"]=>
string() "192.168.9.155:9501"
["connection"]=>
string() "Upgrade"
["pragma"]=>
string() "no-cache"
["cache-control"]=>
string() "no-cache"
["upgrade"]=>
string() "websocket"
["origin"]=>
string() "http://myec.com"
["sec-websocket-version"]=>
string() ""
["user-agent"]=>
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"
["accept-encoding"]=>
string() "gzip, deflate, sdch"
["accept-language"]=>
string() "zh-CN,zh;q=0.8"
["sec-websocket-key"]=>
string() "/nsMgwOyqsM5xmgdqpEBRA=="
["sec-websocket-extensions"]=>
string() "permessage-deflate; client_max_window_bits"
}
["server"]=>
array() {
["request_method"]=>
string() "GET"
["request_uri"]=>
string() "/"
["path_info"]=>
string() "/"
["request_time"]=>
int()
["request_time_float"]=>
float(1522731778.6278)
["server_port"]=>
int()
["remote_port"]=>
int()
["remote_addr"]=>
string() "192.168.9.1"
["master_time"]=>
int()
["server_protocol"]=>
string() "HTTP/1.1"
["server_software"]=>
string() "swoole-http-server"
}
["request"]=>
NULL
["cookie"]=>
NULL
["get"]=>
NULL
["files"]=>
NULL
["post"]=>
NULL
["tmpfiles"]=>
NULL
}
OK~
Swoole学习(五)Swoole之简单WebSocket服务器的创建的更多相关文章
- Swoole学习(四)Swoole之简单WEB服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建WEB服务器 $host = '0.0.0.0'; $port = ; $server = new swoole_http_s ...
- Swoole学习(七)Swoole之异步TCP服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建TCP服务器 /** * $host 是swoole需要监听的ip,如果要监听本地,不对外服务,那么就是127.0.0.1;如 ...
- Swoole学习(三)Swoole之UDP服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建UCP服务器(UDP服务器相对于TCP服务器通信更可靠些) /** * $host 是swoole需要监听的ip,如果要监听本 ...
- Swoole学习(二)Swoole之TCP服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建TCP服务器 /** * $host 是swoole需要监听的ip,如果要监听本地,不对外服务,那么就是127.0.0.1;如 ...
- Netty实现简单WebSocket服务器
本文参考<Netty权威指南>├── WebSocketServerHandler.java├── WebSocketServer.java└── wsclient.html packag ...
- Swoole学习(六)Swoole之定时器的创建与清除
环境:Centos6.4,PHP环境:PHP7,Swoole2.1(在指定的时间后执行函数,需要1.7.7或更高版本) <?php //----------------------------- ...
- 04.swoole学习笔记--webSocket服务器
<?php //创建webSocket服务器 $serv=); //获取请求 //on //open 建立连接 $serv:服务器 $request:客户端信息 $serv->on('op ...
- swoole创建websocket服务器
目录 1 安装准备 1.1 安装swoole前必须保证系统已经安装了下列软件 1.2 下载并解压 1.3 编译安装成功后,修改php.ini 2 构建Swoole基本实例 2.1 tcp服务器实例 2 ...
- 01.swoole学习笔记--TCP服务器
1.安装swoole扩展 2.网络调试助手进行调试 <?php //创建服务器 $host='192.168.10.31'; $port=; //$model='SWOOLE_PROCESS'; ...
随机推荐
- 如何使用 awk 复合表达式
导读 一直以来在查对条件是否匹配时,我们使用的都是简单的表达式.那如果你想用超过一个表达式来查对特定的条件呢?本文中,我们将看看如何在过滤文本和字符串时,结合多个表达式,即复合表达式,用以查对条件. ...
- python基础之2
1.模块 sys模块注意:python文件的文件名一定不能和下面的要导入的模块同名,如:sys_mokuai.py windows下的python3里直接运行: import sys ----- ...
- Objective-C代码学习大纲(2)
2011-05-11 14:06 佚名 otierney 字号:T | T 本文为台湾出版的<Objective-C学习大纲>的翻译文档,系统介绍了Objective-C代码,很多名词为台 ...
- ios 将p12文件转换为pem
cd 到 文件所在目录 执行以下命令,生成ck.pem文件. openssl pkcs12 -in ck.p12 -out ck.pem -nodes
- tomcat中文配置
tomcat传递中文乱码,修改server.xml文件 <Connector port=" protocol="HTTP/1.1" connectionTimeou ...
- 使用Fastjson生成Json字符串少字段属性(数据丢失)
最后是控制台打印生成的结果如下:FastJson生成字符串是:{"id":"2","name":"节点1"," ...
- Python闲谈(一)mgrid慢放
不论是利用Mayavi还是matplotlib绘制三维图表,里面都用到了numpy中的一个函数叫mgrid.本次博客我简单地讲一下mgrid是干什么用的,以及一个三维曲面是如何绘制出来的. 首先说明一 ...
- 按批次处理list数据 (list按条数取)
按批次处理list数据的两种方法 主要应用于list存储数据过多,不能使list整体进行其余操作 Java | 复制 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- vim简单的配置
"设置当文件被改动时自动载入 set autoread "在左侧行号 set nu "tab长度为4 "覆盖文件时不备份 set nobackup " ...
- c# 日常记录,(获取系统时间、return),一些文件隐藏无法引用,c#多个窗体之间传值
1.获取系统时间 DateTime.Now.ToString(); DateTime dt =DateTime.Now; dt.AddDays(1); //增加一天 dt.AddDays(-1);// ...