WebSocket的进一步实例
来源:互联网 发布:什么是bim软件 编辑:程序博客网 时间:2024/06/06 01:06
我的开发环境实在Cygwin中进行的,上一次已经搭建好swoole的开发环境,然后切换到Swoole的目录下,新建一个文件夹chat来保存自己的测试文件,然后新建一个server2的php文件,在文件中输入以下内容:
<?php
//创建websocket服务器对象,监听0.0.0.0:9502端口
$ws = new swoole_websocket_server("0.0.0.0", 9505);
//监听WebSocket连接打开事件
$ws->on('open', function ($ws, $request) {
$fd[] = $request->fd;
$GLOBALS['fd'][] = $fd;
});
//监听WebSocket消息事件
$ws->on('message', function ($ws, $frame) {
$msg = 'from'.$frame->fd.":{$frame->data}\n";
echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
foreach($GLOBALS['fd'] as $aa){
foreach($aa as $i){
$ws->push($i,$msg);
}
}
});
//监听WebSocket连接关闭事件
$ws->on('close', function ($ws, $fd) {
echo "client-{$fd} is closed\n";
});
$ws->start();
###################################################
然后再运行socket文件(名为server2.php)
切换到该文件的目录下面,执行php server2.php即可运行php文件。
在桌面新建一个html文件,在文件中添加下面代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<div id="msg"></div>
<input type="text" id="text">
<input type="submit" value="发送数据" onclick="song()">
</body>
<script>
var msg = document.getElementById("msg");
var wsServer = 'ws://192.168.1.103:9505';
//调用websocket对象建立连接:
//参数:ws/wss(加密)://ip:port (字符串)
var websocket = new WebSocket(wsServer);
//onopen监听连接打开
websocket.onopen = function (evt) {
//websocket.readyState 属性:
/*
CONNECTING 0 The connection is not yet open.
OPEN 1 The connection is open and ready to communicate.
CLOSING 2 The connection is in the process of closing.
CLOSED 3 The connection is closed or couldn't be opened.
*/
msg.innerHTML = websocket.readyState;
};
function song(){
var text = document.getElementById('text').value;
document.getElementById('text').value = '';
//向服务器发送数据
websocket.send(text);
}
//监听连接关闭
// websocket.onclose = function (evt) {
// console.log("Disconnected");
// };
//onmessage 监听服务器数据推送
websocket.onmessage = function (evt) {
msg.innerHTML += evt.data +'<br>';
// console.log('Retrieved data from server: ' + evt.data);
};
//监听连接错误信息
// websocket.onerror = function (evt, e) {
// console.log('Error occured: ' + evt.data);
// };
</script>
</html>
#######################################################
然后再浏览器中输入相应文字并且发送,
这样就可以在Cygwin的窗口中进行监听了, Cygwin中的窗口可以显示出相应的信息。
这样,一个简单的websocket示例就完成了!!!
- WebSocket的进一步实例
- 对JVM GC进一步的实例解析
- websocket的简介及实例
- websocket的java小实例
- 【WebSocket】WebSocket经典实例
- websocket实例
- WebSocket实例
- PHP基于event的webSocket连接实例
- PHP基于libevent的webSocket连接实例
- WebSocket通信实例
- Java Websocket实例
- webSocket 简单实例
- HTML5 WebSocket 简单实例
- 关于websocket小实例
- websocket简单实例
- websocket与Java实例
- Spring4+WebSocket实例
- Java Websocket实例
- 01.程序和cpu
- Ubuntu 16.04中安装Vim 8.0
- ==在对象、基本类型、Integer类中的使用
- 程序员的绘画
- 【c】杨辉三角
- WebSocket的进一步实例
- 自定义折线图
- yii2.0应用介绍
- GITHUB自学系列之一「初识 GITHUB」
- IOS百度地图屏幕坐标与经纬度坐标的转换
- Pattern Matching
- 01作业
- 使用angularjs1.x构建前台开发框架(二)——require的使用
- iOS开发-事件传递与响应者链中的hitTest方法和pointInside方法