laravel - 我在浏览器端需要什么 URI 才能从 heroku 的 redis 插件连接到 amazon redis 服务器

标签 laravel heroku redis socket.io ioredis

我正在尝试使用 redis 和 socket.io 在 heroku 上设置一个聊天应用程序,但我不知道应该在客户端放置什么 uri。

我尝试过的所有 uri,给我一个 404、name_not_resolved 或超时错误。


我有一个 heroku 应用程序,它正在运行一个 node.js buildpack,它所做的只是运行 socket.js 文件。

我还有另一个 php heroku 应用程序,它有带 redis 广播的 laravel 后端和一个 vue 前端。


设置广播以便当有人发布帖子或发出“/”的 GET 请求时,将分别在“new-post-channel”和“user-entered-chat-c​​hannel”上触发事件。


我可以进入 socket.js 应用程序的 bash 并运行“node socket.js”。我可以看到它连接到 heroku 的 redis 插件 Amazon 服务器并接收广播。

我还可以进入第二个应用程序的 heroku 的 redis-cli,进入监控模式,然后看到广播正在按预期接收。


这一切都在一个 vagrant homestead 虚拟服务器上运行,但在 heroku 上却不行。


var socket = io('redis://h:oaisuhaosiufhasodiufh@ec2-99-81-167-43.eu-west-1.compute.amazonaws.com:6639');

(也许您还知道如何在我的第一个应用程序上自动运行“node socket.js”命令,这样我就不必进入 heroku 的 bash 并手动运行它了?)

最佳答案

总之..我终于在 Vultr.com 上获得了 VPS.. 并遇到了同样的问题..

所以答案是

  1. 如果您完成了 https.. 那么您需要输入您所在的域。
io('https://'+ window.location.hostname, {reconnect: true});
  1. 您需要导航到您的 nginx 配置文件并编辑它们。我已经在可用站点部分设置了我的。
/etc/nginx/sites-available/yourDomainOrIp.conf

3。 您将在配置文件中找到这些部分的“位置”。做一个新的。我把我的放在其他人之前。

        location /socket.io/ {
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_pass "http://localhost:3000/socket.io/";
        }

这部分意味着如果你访问/socket.io/它将被重定向到本地主机端口 3000。 在本地主机端口 3000 上,我有 nodejs 应用在监听

var server = require('http').Server();
var io = require('socket.io')(server);

var Redis = require('ioredis');
var redisNewMessage = new Redis();
var redisUserEntered = new Redis();
server.listen(3000);

Soo..我仍然不知道如何完全回答这个问题..但基本上:

在那个 io() 中,您需要传递一个地址,该地址最终将“/socket.io/polling%something&something”传递给本地主机和 nodejs 应用程序所在的服务器端口。

该亚马逊链接保留在 nodejs new Redis () 中。Socket.io 必须连接到 nodejs 应用程序文件,然后一切正常。

关于laravel - 我在浏览器端需要什么 URI 才能从 heroku 的 redis 插件连接到 amazon redis 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55867233/

相关文章:

python - 在 Redis 上为 Django 和 Express.js 应用程序共享 session 存储

php - Laravel 存储库模式契约

python - 在 Heroku 上部署 python 网站,无法正常工作

python - 在 Heroku 上部署时,报 TypeError : expected str, bytes or os.PathLike object, not tuple

node.js - 在 Heroku 上运行预部署 Grunt 任务

java - Spring Data Redis 在 TTL 到期后不清理辅助地理空间索引

laravel - 如何在查询中通过 ID 作为主键连接表 -laravel

mysql - 为什么 PHP artisan migrate 命令显示错误?

laravel - laravel 框架中的符号链接(symbolic link)是什么?

python - 等待 gevent socket 和 redis 阻塞 blpop