Socket.io和php

Socket.io和php,php,ionic-framework,socket.io,chat,ionic4,Php,Ionic Framework,Socket.io,Chat,Ionic4,我已经用socket.io配置了我的ionic 4应用程序,并按照socket.io网站上的说明进行了操作。在localhost上一切正常,因为当我在命令行中键入node index.js时,服务器socket.io启动,同一网络中的所有用户都可以在同一个房间里聊天 我如何配置东西,使其在在线服务器上工作?像配置php一样?这是一个相当复杂的设置。我几乎所有的应用程序都有它。下面是: 首先,您需要在服务器上安装redis和node 现在,要从服务器触发通知,请创建一个帮助器: <?php

我已经用socket.io配置了我的ionic 4应用程序,并按照socket.io网站上的说明进行了操作。在localhost上一切正常,因为当我在命令行中键入
node index.js
时,服务器socket.io启动,同一网络中的所有用户都可以在同一个房间里聊天


我如何配置东西,使其在在线服务器上工作?像配置php一样?

这是一个相当复杂的设置。我几乎所有的应用程序都有它。下面是:

首先,您需要在服务器上安装redis和node

现在,要从服务器触发通知,请创建一个帮助器:

<?php

namespace App\Helpers;

class SocketIo
{
    public static function trigger($event, $data)
    {
        $redisChannel = 'socket-io';
        $redis->publish($redisChannel, json_encode([
            'event' => $event,
            'data' => $data
        ]));
    }
}
在您的
包.json
依赖项中:

"dependencies": {
    "dotenv": "^4.0.0",
    "ioredis": "^3.1.4",
    "socket.io": "^2.0.3"
}
当然,运行
npm install
来安装依赖项,然后可以转到
node socket.js
来运行它

在生产中,您需要安装类似于
pm2
supervisor
的东西,以保持
socket.js
始终运行

pm2 start socket.js
如果您想与supervisor一起使用,以下是配置:

[program:socket-io]
process_name=%(program_name)s_%(process_num)02d
command=node /var/www/express-callback/socket.js
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
logfile_maxbytes=1MB
stdout_logfile=/var/www/express-callback/storage/logs/socket-io.log

您可以使用
https://www.heroku.com/
NodeJs的托管。它简单而自由。您只需用生成的heroku应用程序替换本地主机链接。
[program:socket-io]
process_name=%(program_name)s_%(process_num)02d
command=node /var/www/express-callback/socket.js
autostart=true
autorestart=true
user=root
numprocs=1
redirect_stderr=true
logfile_maxbytes=1MB
stdout_logfile=/var/www/express-callback/storage/logs/socket-io.log