gpt4 book ai didi

php - 一对一私有(private)聊天使用套接字和 Laravel 5.1

转载 作者:可可西里 更新时间:2023-11-01 11:35:47 24 4
gpt4 key购买 nike

我正在使用 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 中注册 channel 并通过 Node 中的 redis 使其可用你可以只从客户端发送用户 id 并检查 id 是否已被暴徒用户更改或不购买如果两个 id 相等,那么他打算接收消息

关于php - 一对一私有(private)聊天使用套接字和 Laravel 5.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34238111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com