У меня есть сокет io redis и express pubsub происходит, в моем локальном хосте он работает отлично, я использую laravel events для публикации в redis, тогда сокет io должен излучать сообщение, его работа в порядке на локальном хосте, но на моем рабочем сервере, который является ec2 vm, он только подключается, и я вижу сообщение «подключено», но оно не генерирует никаких событий, даже несмотря на то, что сообщения публикуются для redis здесь, это мой клиент и серверsocket io connect, но не emmiting
//client
<script type="text/javascript">// <![CDATA[
var socket = io.connect('http://127.0.0.1:3000/');
socket.on('connect', function(data){
//socket.emit('subscribe', {channel:'score.update'});
console.log('connected');
});
socket.on('notification.update', function (data) {
//Do something with data
console.log('Notification Caught: ', data);
});
// ]]></script>
//server
var express = require('express'),
http = require('http'),
server = http.createServer(app);
var app = express();
const redis = require('redis');
const io = require('socket.io');
const client = redis.createClient();
server.listen(3000, 'localhost');
io.listen(server).on('connection', function(client) {
const redisClient = redis.createClient()
redisClient.subscribe('notification.update');
});
redisClient.on("message", function(channel, message) {
//Channel is e.g 'score.update'
client.emit(channel, message);
});
client.on('disconnect', function() {
redisClient.quit();
});
});