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'; ...
随机推荐
- 【BZOJ2616】SPOJ PERIODNI 笛卡尔树+树形DP
[BZOJ2616]SPOJ PERIODNI Description Input 第1行包括两个正整数N,K,表示了棋盘的列数和放的车数. 第2行包含N个正整数,表示了棋盘每列的高度. Output ...
- Maven开发系统
Maven的优点: 自动从互联网中获取jar包,并实现了一步构建. pom.xml的配置 依赖管理(导入对应的jar包) 通过坐标(定位到仓库中的包的位置,并将jar包导入到项目中,如果版本升级,只需 ...
- 基于注解的形式配置Bean
基于注解的方式配置Bean:也就说我们在每个Bean的类名前面注解一下,Spring会自动帮我们扫描Bean放进IOC容器中 I基于注解的方式配置Bean(没有依赖关系的Bean)有两个步骤: 1组件 ...
- 在iOS模拟器上安装程式的ios-sim
针对iOS装置进行开发时,绝大部分开发者采用的工具都是官方的Xcode.问题是负责图像设计和开发管理人员,却不一定熟悉Xcode的操作,这时ios-sim便是一个解决方案. 曾经从事iOS开发的朋友, ...
- uva656 Optimal Programs
Optimal Programs As you know, writing programs is often far from being easy. Things become even hard ...
- 直接IO 零拷贝 DAM 自缓存应用程序
直接IO 零拷贝 DAM 自缓存应用程序
- 设计模式之Prototype模式
通常我们会使用new 类名()的方法会去生成一个新的实例,但在开发过程中,有时候也会有"在不指定类名的前提下生成实例"的需求,那样,就只能根据现有实例来生成新的实例. 有三种情况, ...
- OSGI框架—HelloWorld小实例
OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范.OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于 ...
- python重建二叉树
# -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None ...
- 使用Standford coreNLP进行中文命名实体识别
因为工作需要,调研了一下Stanford coreNLP的命名实体识别功能. Stanford CoreNLP是一个比较厉害的自然语言处理工具,很多模型都是基于深度学习方法训练得到的. 先附上其官网链 ...