swoole学习(二)----搭建server和client
1.搭建server
1.1搭建server.php
1.搭建websocket服务器,首先建立 server.php 文件,
<?php
$server = new swoole_websocket_server('0.0.0.0', 9502);// 创建swoole的websocket实例 其中 0.0.0.0 代表监听所有回路 包括127.0.0.1 和 192.168.*.* 和 外部IP, 端口是9502 //监听打开事件
$server->on('open', function ($server, $request){
var_dump($request->fd, $request->get, $request->server);
$server->push($request->fd, "我是open\n");
}); //监听消息事件
$server->on('message', function ($server, $message){
echo "Message: {$message->data}\n";
$server->push($message->fd, "服务器给的: {$message->data}");
}); //监听关闭事件
$server->on('close', function ($server, $fd){
echo "客户端: {$fd} 关闭了";
}); $server->start();
$server->push("客户端ID", "推送信息"); 这个方法是server向client推送信息的方法;
server 的 on 事件监听有 open : 连接成功事件
message : 收到信息事件
close : 客户端关闭事件
2.运行server.php文件 php server.php

2.搭建client
2.1 搭建client.html
1.创建client.html,主要使用 js 的 WebSocket()
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body> </body>
<script>
var wsServer = 'ws://192.168.33.10:9502';
var websocket = new WebSocket(wsServer);
websocket.onopen = function (evt) {
console.log("连接到服务器");
}; websocket.onclose = function (evt) {
console.log("连接关闭");
}; websocket.onmessage = function (evt) {
console.log('收到服务器信息' + evt.data);
}; websocket.onerror = function (evt, e) {
console.log('错误信息: ' + evt.data);
};
</script>
</html>
2.参数说明: var wsServer = 'ws://192.168.33.10:9502';
ws: 代表使用websocket协议
ip地址 是server的地址
3.监听事件 onopen : 客户端连接到服务器的时候触发
onclose : 客户端关闭的时候触发
onmessage : 收到服务器信息的时候触发
onerror : 发生错误的时候触发,包括连接错误,发送、接收信息的时候出现错误触发
3.测试连接
3.1客户端连接

输出正常
3.2服务器连接

输出正常!
4.总结
swoole的 websocket 服务器搭建成功,当客户端请求服务器的时候,客户端执行了onopen事件,触发了console.log,服务器端当client连接的时候,触发了onopen,打印了fd,和客户端请求头信息;
这样就搭建成功了server和client实时双工通信! 可以做一个实时聊天室,或者弹幕系统,以后慢慢学习!
swoole学习(二)----搭建server和client的更多相关文章
- Swoole学习(二)Swoole之TCP服务器的创建
环境:Centos6.4,PHP环境:PHP7 <?php //创建TCP服务器 /** * $host 是swoole需要监听的ip,如果要监听本地,不对外服务,那么就是127.0.0.1;如 ...
- swoole 异步非堵塞 server/端 client/端 代码,已经测试完毕。贴代码
服务器环境 centos7.0 swoole4.3 php7.2 pcre4.8 nginx1.8 php-fpm server.php <?php class Server { pr ...
- swoole深入学习 2. tcp Server和tcp Client
这节来学习Swoole最基础的Server和Client.会通过创建一个tcp Server来讲解. server <?php class Server { private $serv; pub ...
- swoole深入学习 3. upd Server和udp Client
前面主要讲了tcp得server和client的业务处理,tcp有三次握手,有连接的概览,而UDP服务器与TCP服务器不同,UDP没有连接的概念.启动Server后,客户端无需Connect,直接可以 ...
- SpringCloud学习(二):微服务入门实战项目搭建
一.开始使用Spring Cloud实战微服务 1.SpringCloud是什么? 云计算的解决方案?不是 SpringCloud是一个在SpringBoot的基础上构建的一个快速构建分布式系统的工具 ...
- 保姆级教程——Ubuntu16.04 Server下深度学习环境搭建:安装CUDA8.0,cuDNN6.0,Bazel0.5.4,源码编译安装TensorFlow1.4.0(GPU版)
写在前面 本文叙述了在Ubuntu16.04 Server下安装CUDA8.0,cuDNN6.0以及源码编译安装TensorFlow1.4.0(GPU版)的亲身经历,包括遇到的问题及解决办法,也有一些 ...
- AspectJ基础学习之二搭建环境(转载)
AspectJ基础学习之二搭建环境(转载) 一.下载Aspectj以及AJDT 上一章已经列出了他的官方网站,自己上去download吧.AJDT是一个eclipse插件,开发aspectj必装,他可 ...
- Netty4.0学习笔记系列之一:Server与Client的通讯
http://blog.csdn.net/u013252773/article/details/21046697 本文是学习Netty的第一篇文章,主要对Netty的Server和Client间的通讯 ...
- Spring+SpringMVC+MyBatis深入学习及搭建(十二)——SpringMVC入门程序(一)
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6999743.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十一)——S ...
随机推荐
- SQL Server ->> Computed Column(计算列)
Computed Column(计算列)是自SQL Server 2005开始就有的特性.计算列的定义是一个表达式.表达式可以是非计算列,常量,函数间的组合.但是不可以是子查询. 计算列数据固化 默认 ...
- 【Leetcode】【Medium】Linked List Cycle
Given a linked list, determine if it has a cycle in it. 解题: 判断单链表是否具有环,使用两个指针once和twice遍历链表,once一次走一 ...
- Retrofit-入门使用
1. 在模块目录下的build.gradle dependencies { compile "com.squareup.retrofit2:retrofit:2.1.0" comp ...
- Windows下Redis集群配置
Redis集群学习地址:http://blog.csdn.net/dc_726/article/details/11694437 Windows-32系统下搭建Redis集群 一.Redis主从同步原 ...
- June 23rd 2017 Week 25th Friday
Life doesn't get easier, you just get stronger. 生活从未变得轻松,是你在一点一点变得坚强. So in the same way we can get ...
- January 17 2017 Week 3 Tuesday
You can't shake hands with a clenched fist. 紧握拳头你就无法与他人握手. If you want to shake hands with others, j ...
- React Native调试技巧与心得
转自:http://blog.csdn.net/quanqinyang/article/details/52215652 在做React Native开发时,少不了的需要对React Native程序 ...
- Ubuntu 下安装apache+PHP
1.安装apache2 sudo apt-get install apache2 运行如下命令重启:sudo /etc/init.d/apache2 restart 在浏览器里输入http://loc ...
- hdu 6214 Smallest Minimum Cut[最大流]
hdu 6214 Smallest Minimum Cut[最大流] 题意:求最小割中最少的边数. 题解:对边权乘个比边大点的数比如300,再加1 ,最后,最大流对300取余就是边数啦.. #incl ...
- 关于Hibernate的报错org.hibernate.MappingException: Unknown entity
部分异常,如下 org.hibernate.MappingException: Unknown entity: com.zcd.hibernate.oneToMany.Teamat org.hiber ...