tcp 服务端,客户端

websocket.html

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

</body>
<script>
    var wsServer = 'ws://xxxxxx:9501';
    var websocket = new WebSocket(wsServer);
    websocket.onopen = function (evt) {

        console.log("Connected to WebSocket server.");
        var data = {
            'code':1, // 我们假设code为1时,是绑定登录请求
            'user_id':1111
        };
        // 前端发送json前,必须先转义成字符串
        data = JSON.stringify(data);
        console.log(data);
        websocket.send(data);
        //websocket.send("Hello WebSockets!");
    };

    websocket.onclose = function (evt) {
        console.log("Disconnected");
    };

    websocket.onmessage = function (evt) {
        console.log('Retrieved data from server: ' + evt.data);
    };

    websocket.onerror = function (evt, e) {
        console.log('Error occured: ' + evt.data);
    };
</script>
</html>

  

websocket.php

<?php
$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);
$set = array(
    'heartbeat_idle_time' => 600, // 表示一个连接如果600秒内未向服务器发送任何数据,此连接将被强制关闭
    'heartbeat_check_interval' => 60,  // 表示每60秒遍历一次
);
$server->set($set);
$server->on('open', function (Swoole\WebSocket\Server $server, $request) {
    echo "server: handshake success with fd{$request->fd}\n";

});

$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();

 

 

<?php
$server = new Swoole\Server('127.0.0.1', 9501);
$set = array(
    'heartbeat_idle_time' => 600, // 表示一个连接如果600秒内未向服务器发送任何数据,此连接将被强制关闭
    'heartbeat_check_interval' => 60,  // 表示每60秒遍历一次
);
$server->set($set);
//监听连接进入事件
$server->on('Connect', function ($server, $fd) {
    echo "Client: Connect.\n";
});

//监听数据接收事件
$server->on('Receive', function ($server, $fd, $from_id, $data) {
    $user = json_decode($data, true);
    echo $user['userId'] . '登陆了';
    $server->send($fd, "Server: " . $data);
});

//监听连接关闭事件
$server->on('Close', function ($server, $fd) {
    echo $fd . '关闭了';
    echo "Client: Close.\n";
});

//启动服务器
$server->start();

  

posted on 2021-04-30 17:47  running-fly  阅读(89)  评论(0编辑  收藏  举报

导航