Socket.io在laravel 5中聊天

时间:2016-05-15 06:23:33

标签: php laravel laravel-5 redis socket.io

所以我有一个脚本使用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');
    }
}

我在这里缺少什么?

任何帮助表示赞赏

1 个答案:

答案 0 :(得分:1)

我检查了我的浏览器控制台,发现这是连接拒绝错误。然后,我检查了与socket.io的客户端连接,并将连接更改为从{{3}}运行节点服务器的VM的IP,并且它运行良好!