【发布时间】: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