【问题标题】:Websocket doesn't connect despite socket io server running尽管套接字 io 服务器正在运行,但 Websocket 未连接
【发布时间】:2022-01-20 01:30:13
【问题描述】:

我正在使用 socket io + Redis + Laravel 事件

清单:

  • redis 服务器已启动。
  • redis 客户端响应“ping”
  • 端口 6379 已打开且未阻塞

server.js

'use strict';
var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);
require('dotenv').config();

var redisPort = process.env.REDIS_PORT;
var redisHost = process.env.REDIS_HOST;

var ioRedis = require('ioredis');
var redis = new ioRedis(redisPort, redisHost);
redis.subscribe('action-channel-one');
redis.on('message', function (channel, message) {
  message  = JSON.parse(message);
  console.log(message);
  io.emit(channel + ':' + message.event, message.data);
});

var broadcastPort = process.env.BROADCAST_PORT;
server.listen(broadcastPort, function () {
  console.log('Socket server is running.');
});

client.php

<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.2.0/socket.io.js"> </script>
<script>

  var sock = io('{{ env("PUBLISHER_URL") }}:{{ env("BROADCAST_PORT") }}', {transports: ["websocket"]});


  console.log(sock);
.................

错误:

【问题讨论】:

    标签: php laravel websocket socket.io


    【解决方案1】:

    在 .env 和客户端添加 BROADCAST_PORT = 3444 解决了这个问题。参考这个问题:socket io not established in live site

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多