【发布时间】:2016-03-18 17:10:58
【问题描述】:
我正在使用 Laravel 5.0,并且我有一个视图,其中显示了多个帖子。我的 Post.php、Comment.php 和我的 User.php 之间存在模型关系
home.blade.php 视图:
@foreach($posts as $post)
<h1>{{ $post->title }}</h1>
<p>{{ $post->description }}</p>
<div id="comments">
@foreach($post->comments as $comment)
<h3>{{ $comment->user->username }}</h3>
<p>{{ $comment->comment }}</p>
<hr>
@endforeach
</div>
@endforeach
使用 socket.io v1.3.5,我如何为每个帖子指定 cmets。例如,我有一个 ID 为 1 的帖子和另一个 ID 为 2 的帖子。我必须怎么做才能使帖子 1 中的评论保留在帖子 1 中,而帖子 2 中的评论保留在帖子 2 中。目前,一个在帖子 1 中发表的评论将出现在帖子 2 cmets 部分,反之亦然。
PostController.php
$data = [
'event' => 'UserComment',
'data' => [
'username' => Auth::user()->getUsername(),
'comment' => Request::input('comment'),
'post_id' => $id
]
];
Redis::publish('user-comment', json_encode($data));
server.js
var server = require('http').Server();
var io = require('socket.io')(server);
var Redis = require('ioredis');
var redis = new Redis();
var usernames = {};
redis.subscribe('user-comment');
redis.on('message', function(channel, message){
message = JSON.parse(message);
var room = message.data.post_id;
console.log(room);
// io.emit(channel + ':' + message.event, message.data);
});
server.listen(3000);
home.blade.php - javascript
socket.on('user-comment:UserComment', function(data){
$('#home_chat_content_div_body').append($('<h4>').text(data.username).css('color', '#00c5cd'));
$('#home_chat_content_div_body').append($('<p>').text(data.comment));
$('#home_chat_content_div_body').append($('<hr>'));
【问题讨论】:
标签: php jquery socket.io laravel-5