swoole 学习笔记(3)-- WebSocket

本文介绍了一个使用 Swoole 实现的 WebSocket 服务端与客户端的示例代码。服务端采用 PHP 语言编写,利用 Swoole 扩展创建 WebSocket 服务器,监听连接打开、消息接收及关闭事件。客户端则通过 JavaScript 的 WebSocket API 进行连接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

swoole 文档

1服务端代码:

<?php
/**
 * Created by PhpStorm.
 * User: 
 * Date: 2018/7/22
 * Time: 15:12
 */
$server = new swoole_websocket_server("0.0.0.0", 8813);

//$server->set([]);

//监听websocket连接打开事件
$server->on('open', function (swoole_websocket_server $server, $request) {
    echo "server: handshake success with fd{$request->fd}\n";
});

//监听ws消息事件
$server->on('message', function (swoole_websocket_server $server, $frame) {
    echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
    $server->push($frame->fd, "this is server");
});

//关闭事件
$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closed\n";
});

$server->start();

2 客户端

新建一个html文件 是按websocket客户端

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    var wsUrl = 'ws://xx.xx.xx.xx:8813';
    var webSocket = new WebSocket(wsUrl);
    webSocket.onopen = function (evt) {
        console.log('conected-success');
    }

    webSocket.onmessage = function (evt) {
        console.log('server-return:' + evt.data);
    }

    webSocket.onclose = function (evt) {
        console.log('close');
    }

    webSocket.onerror =function (evt, e) {
        console.log('error' + evt.data)
    }
</script>
</body>
</html>

3.测试

  1.    启动服务端
  2. 启动客户端

  

上图三行 分别为 “连接成功,收到消息,关闭客户端” 的输出信息

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值