一对一私人聊天使用套接字和Laravel 5.1

One to one Private chat Using socket and Laravel 5.1

我正在使用 Laravel5.1 Socket.io 和 Redis,Mysql

我想使用 Socket 为用户创建一对一聊天。

------------服务器端--------

var express = require('express');
    var app = express();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    var Redis = require('ioredis');
    var redis = new Redis();
    http.listen(3000, function(){
        console.log('Listening on Port 3000');
    });

    io.on('connection', function(socket) {

        socket.on('message', function(data, cb){
            socket.to(data.destId).emit('message', {'desc':data.message, 'destId':socket.id,'userProfile':data.userProfile});
            cb('success sending message');
        });

        socket.on('join', function(data, cb){
            socket.join(data.user);
            cb('success joining');
        });

        socket.on('bye', function(user){
            socket.broadcast.to(user).emit('bye', socket.id);
        })
    });

我想处理未发送给用户的消息,我还想显示消息是否被收件人阅读

如果我将所有消息存储在数据库中 (Mysql)。会有很多IO操作。一件事可以存储到 Redis 或 Memcached 中。你能建议吗 我是这样做的有效方法。

帮我配置 Redis 来存储数据,这样我就可以使用 socket.js 文件(它在根目录中,它包含 socekt.io 的服务器端代码)。

有效的方法是使用 redis

redis.subscribe('test-channel', function () {
    console.log('message has been received');
});

首先在 laravel 中注册通道并通过节点中的 redis 使其可用 你可以只从客户端发送用户 id 并检查 id 是否已被暴徒用户更改或不购买如果两个 id 相等那么他打算接收消息