所以我有一个脚本使用socket io,一个node.js服务器和一个redis队列来进行laravel中的实时聊天
我有一切正常,redis队列正在接受输入,我可以在使用' redis-cli monitor'时看到它,但是消息没有被输出到套接字视图
socket.blade.php
@extends('layouts.admin')
@section('content')
<script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
<script src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
<script src="https://cdn.socket.io/socket.io-1.3.4.js"></script>
<div class="container">
<div class="row">
<div class="col-lg10 col-lg-offset-2" >
<div id="messages" ></div>
</div>
</div>
</div>
<script>
var socket = io.connect('http://localhost:8890');
socket.on('message', function (data) {
$( "#messages" ).append( "<p>"+data+"</p>" );
});
</script>
@endsection
socketController.php
<?php
namespace SocialNet\Http\Controllers;
use SocialNet\Http\Requests;
use SocialNet\Http\Controllers\Controller;
use Request;
use LRedis;
class SocketController extends Controller {
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
return view('socket');
}
public function writemessage()
{
return view('writemessage');
}
public function sendMessage(){
$redis = LRedis::connection();
$redis->publish('message', Request::input('message'));
return redirect('writemessage');
}
}
我在这里缺少什么?
任何帮助表示赞赏
答案 0 :(得分:1)
我检查了我的浏览器控制台,发现这是连接拒绝错误。然后,我检查了与socket.io的客户端连接,并将连接更改为从{{3}}运行节点服务器的VM的IP,并且它运行良好!