【发布时间】:2018-04-01 11:43:11
【问题描述】:
我已经在我的本地机器上成功地完成了实时通知模块。我需要在实时服务器中实现这个模块。实时服务器是 https。我不知道我们需要为 https 更改哪些内容。请检查我的代码并帮助将其集成到 https 服务器上。谢谢。
ssl 文件
SSLCertificateFile /etc/letsencrypt/live/dev.test.de/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/dev.test.de/privkey.pem
socket.js
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var redis = require('redis');
io.on('connection', function(socket){
console.log('a user connected');
var redisClient = redis.createClient();
/* Realtime message subscribe */
redisClient.subscribe('message');
redisClient.on('message', function(channel, message){
/*console.log('new message in queue', channel, message);*/
socket.emit(channel, message);
});
/* Realtime inquiry subscribe */
redisClient.subscribe('inquiryCount');
redisClient.on('inquiryCount', function(channel, message){
/*console.log('new inquiry in queue', channel, message);*/
socket.emit(channel, message);
});
socket.on('disconnect', function(){
redisClient.quit();
console.log('user disconnected');
});
});
http.listen(3000, function(){
console.log('listening on *:3000');
});
app.blade.php
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/1.4.8/socket.io.min.js"></script>
<script>
var socket = io('{{env('APP_URL')}}:3000');
/* Realtime message notification */
socket.on('message', function(data){
if(data){
/* var res = $.parseJSON(data);*/
$('.messages-menu').empty();
$('.messages-menu').html(data);
}
});
/* Realtime inquiry notification */
socket.on('inquiryCount', function(data){
if(data){
$('.tasks-menu').empty();
$('.tasks-menu').html(data);
}
});
</script>
DashboardController.php
public function privateMessageAPICount($id)
{
$message = 'taking count of data';
if(count($message) > 0){
$redis = Redis::connection();
$redis->publish('message', $message);
return response()->json(['status' => 'success'], 200);
}
else {
return response()->json(['status' => 'No Result'], 404);
}
}
public function inquiryAPIUnreadCount($id)
{
$inquiryCount .= 'taking count of data';
if(count($inquiryCount ) > 0){
$redis = Redis::connection();
$redis->publish('inquiryCount', $inquiryCount);
return response()->json(['status' => 'success'], 200);
}
else {
return response()->json(['status' => 'No Result'], 404);
}
}
【问题讨论】:
标签: php laravel sockets laravel-5 laravel-5.4