一对一私人聊天使用套接字和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 相等那么他打算接收消息
我正在使用 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 相等那么他打算接收消息