dqde43215 2018-06-08 08:57
浏览 223

即使终端关闭,也要保持swoole websocket运行

I am trying to create a chat application using Socket and using Swoole as backend. I successfully create a connection to server-client but the issue I am facing now is that whenever I close terminal WebSocket is unable to connect. Server code:-

<?php
//Create the websocket server object 
$websocket_server = new swoole_websocket_server("MY_IP", 3000);

// Register function of the opening connection event
$websocket_server->on('open', function($websocket_server, $request){
    var_dump($request->fd, $request->get, $request->server);
    $websocket_server->push($request->fd, "Hello welcome
");
});

// Register function of the receiving message event
$websocket_server->on('message', function($websocket_server, $frame){
    echo "Message : {$frame->data}
";
    $websocket_server->push($frame->fd, "Server : {$frame->data}");
});

// Register function of the close event
$websocket_server->on('close', function($websocket_server, $fd){
    echo "client_{$fd} is closed
";
});

// Start the server
$websocket_server->start();

Client side Code:-

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>Page Title</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>

<script type="text/javascript">
var wsServer = 'ws://IP:3000';
var websocket = new WebSocket(wsServer);
websocket.onopen = function (evt) {
    console.log("Connected to WebSocket server.");
};

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>
</body>
</html>

Everything is working fine the only issue is when we close terminal web socket id down.

  • 写回答

1条回答 默认 最新

  • duanpei8853 2018-06-09 10:14
    关注

    I get the answer on Git. Please add below code in line

    $websocket_server = new swoole_websocket_server("MY_IP", 3000);
    $websocket_server->set([
        'daemonize' => true,
    ]);
    
    评论

报告相同问题?

悬赏问题

  • ¥15 #MATLAB仿真#车辆换道路径规划
  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘