带有 NodeJS HTTPS 的 Laravel Echo 不起作用

若昂·马克斯

我一直在开发这个 NodeJS 应用程序,它利用 Laravel Echo 的功能通过套接字连接从服务器接收信息。

带有 Laravel 5.7.19 的服务器端Laravel Echo Server

客户端“laravel-echo”:“^1.5.2”“socket.io”:“^2.2.0”

import Echo from '../../node_modules/laravel-echo/dist/echo.common.js'
import Socketio from 'socket.io-client';

let echo = new Echo({ 

  broadcaster: 'socket.io',
  host: 'https://smartfish.danymota.com:8080/',
  encrypted: true,
  secure: true,
  client: Socketio,
  auth: {
    headers: {
      'Authorization': 'Bearer ' + this.token.bearerToken,
    },
  },
});
echo.private('central.' + macAddress)
  .listen('RulesUpdated', (response) => {
    handleRules(JSON.parse(response.aquarios))
    console.log(new Date().toLocaleString() + " - Rules updated")
  })

问题在 Http 中一切正常,当我切换到 HTTPS 时它就停止工作了。此外,套接字连接没有到达服务器(或者至少 Laravel-echo-server 没有记录它)

重要 - 我试过的

  1. 通过 Browserify 运行应用程序,然后在浏览器上运行(在浏览器上运行得很好,即使使用 HTTPS

  2. 使用不同的端口(同样,它适用于 HTTP,因此端口可能不是问题)

  3. 将 URL 更改为 wss://, /socket.io

  4. 强制 socket.io 在选项上包含一个 secure: true

  5. 更改了 Laravel Echo 的版本

  6. 尝试同时导入 echo.common.js 和 echo.js

笔记

/api/broadcasting/auth - 这是有效的,所以问题可能不在这里

Laravel 回显服务器配置

    {
    "authHost": "https://smartfish.danymota.com",
    "authEndpoint": "/api/broadcasting/auth",
    "clients": [{
        "appId": "f7506b5e7118092c",
        "key": "9015d93999f3a2f7f95a054a76fbcbfd"
    }],
    "database": "redis",
    "databaseConfig": {
        "redis": {},
        "sqlite": {
            "databasePath1": "/database/laravel-echo-server.sqlite"
        }
    },
    "devMode": true,
    "host": null,
    "port": "8080",
    "protocol": "https",
    "socketio": {},
    "sslCertPath": "/home/danymota/ssl/cert/smartfish.danymota.com.crt",
    "sslKeyPath": "/home/danymota/ssl/private/smartfish.danymota.com.key",
    "sslCertChainPath": "",
    "sslPassphrase": "",
    "subscribers": {
        "http": true,
        "redis": true
    },
    "apiOriginAllow": {
        "allowCors": true,
        "allowOrigin": "http://smartfishweb.test/api",
        "allowMethods": "GET, POST",
        "allowHeaders": "Origin, Content-Type, X-Auth-Token, X-Requested-With, Accept, Authorization, X-CSRF-TOKEN, X-Socket-Id"
    }
}

Socket.io 调试

socket.io-client:url parse https://smartfish.danymota.com:8080/socket.io +0ms
socket.io-client new io instance for https://smartfish.danymota.com:8080/socket.io +0ms
socket.io-client:manager readyState closed +0ms
socket.io-client:manager opening https://smartfish.danymota.com:8080/socket.io +0ms
socket.io-client:manager connect attempt will timeout after 20000 +4ms
socket.io-client:manager readyState opening +1ms
socket.io-client:manager connect_error +60ms
socket.io-client:manager cleanup +0ms

谢谢大家。

若昂·马克斯

我通过向rejectUnauthorized: falselaravel echo添加一个标志解决了这个问题

  this.echo = new Echo({
  broadcaster: 'socket.io',
  host: config.ECHO_SERVER,
  client: Socketio,
  rejectUnauthorized: false,
  auth: {
    headers: {
      'Authorization': 'Bearer ' + this.token.bearerToken,
    },
  },
})

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

sql数组不起作用(背景:带有postgresql的nodejs)

来自分类Dev

带有 .map 的索引数组在 nodejs 上不起作用

来自分类Dev

带有JPG的Laravel Regex Match Url不起作用

来自分类Dev

带有参数的laravel 5.3操作不起作用

来自分类Dev

带有 Model::all() 方法的 Laravel 范围不起作用

来自分类Dev

nodejs-npm安装https,不起作用

来自分类Dev

带有新行“ \ n”的php echo警报消息不起作用

来自分类Dev

带有echo findstr的批处理文件在for循环内不起作用

来自分类Dev

带有新行“ \ n”的php echo警报消息不起作用

来自分类Dev

带有Servlet和https的Ajax在Google App Engine上不起作用

来自分类Dev

带有https和版本的Azure中的CDN CSS和JS不起作用

来自分类Dev

Nodejs,带有EJS到Android的Expressjs在PhoneGap中不起作用?

来自分类Dev

Nodejs,带有EJS到Android的Expressjs在PhoneGap中不起作用?

来自分类Dev

为什么回调在带有 mysql 的 nodejs 中不起作用?

来自分类Dev

带有https nodejs模块的SOAP请求

来自分类Dev

“echo $?”的别名 不起作用

来自分类Dev

@echo off 不起作用

来自分类Dev

Laravel 4-带有Flash消息的重定向不起作用

来自分类Dev

Laravel带有ID变量的重定向路由不起作用

来自分类Dev

带有连接的yajra DataTable在laravel 5中不起作用?

来自分类Dev

laravel 5.2,带有like的查询生成器不起作用

来自分类Dev

在我的本地系统中带有crontab的Laravel 5中的调度程序不起作用

来自分类Dev

为什么我来自 Laravel echo 的 .listen 调用在我的 Angular 前端不起作用?

来自分类Dev

https的ProxyPass不起作用

来自分类Dev

https的RewriteRule不起作用

来自分类Dev

Laravel 5-POST路由上的htaccess HTTPS重定向不起作用。

来自分类Dev

Laravel:重定向到 https://www.*** 在 Firefox 中不起作用?

来自分类Dev

如何在具有https的生产服务器上使用Laravel Echo

来自分类Dev

mysql_insert_id不起作用-具有mysql_insert_id()的cant'echo变量

Related 相关文章

  1. 1

    sql数组不起作用(背景:带有postgresql的nodejs)

  2. 2

    带有 .map 的索引数组在 nodejs 上不起作用

  3. 3

    带有JPG的Laravel Regex Match Url不起作用

  4. 4

    带有参数的laravel 5.3操作不起作用

  5. 5

    带有 Model::all() 方法的 Laravel 范围不起作用

  6. 6

    nodejs-npm安装https,不起作用

  7. 7

    带有新行“ \ n”的php echo警报消息不起作用

  8. 8

    带有echo findstr的批处理文件在for循环内不起作用

  9. 9

    带有新行“ \ n”的php echo警报消息不起作用

  10. 10

    带有Servlet和https的Ajax在Google App Engine上不起作用

  11. 11

    带有https和版本的Azure中的CDN CSS和JS不起作用

  12. 12

    Nodejs,带有EJS到Android的Expressjs在PhoneGap中不起作用?

  13. 13

    Nodejs,带有EJS到Android的Expressjs在PhoneGap中不起作用?

  14. 14

    为什么回调在带有 mysql 的 nodejs 中不起作用?

  15. 15

    带有https nodejs模块的SOAP请求

  16. 16

    “echo $?”的别名 不起作用

  17. 17

    @echo off 不起作用

  18. 18

    Laravel 4-带有Flash消息的重定向不起作用

  19. 19

    Laravel带有ID变量的重定向路由不起作用

  20. 20

    带有连接的yajra DataTable在laravel 5中不起作用?

  21. 21

    laravel 5.2,带有like的查询生成器不起作用

  22. 22

    在我的本地系统中带有crontab的Laravel 5中的调度程序不起作用

  23. 23

    为什么我来自 Laravel echo 的 .listen 调用在我的 Angular 前端不起作用?

  24. 24

    https的ProxyPass不起作用

  25. 25

    https的RewriteRule不起作用

  26. 26

    Laravel 5-POST路由上的htaccess HTTPS重定向不起作用。

  27. 27

    Laravel:重定向到 https://www.*** 在 Firefox 中不起作用?

  28. 28

    如何在具有https的生产服务器上使用Laravel Echo

  29. 29

    mysql_insert_id不起作用-具有mysql_insert_id()的cant'echo变量

热门标签

归档