【问题标题】:localhost didn't send any data in laravel 5.2(socket.io )localhost 没有在 laravel 5.2(socket.io) 中发送任何数据
【发布时间】:2016-07-29 04:15:16
【问题描述】:

我已经在 laravel 5.2 中安装了 node.js、socket.io、predis、ioredis

当我跑步时

节点socket.js

在 gitbash 中,没有返回任何内容。

在localhost:3000,首先加载一段时间然后显示localhost没有发送任何数据错误。(应该显示完成)

socket.js 文件:http://laravel.io/bin/OeGxv

路由文件:http://laravel.io/bin/d9PvY

package.json: http://laravel.io/bin/Kk5mB

【问题讨论】:

    标签: laravel redis socket.io laravel-5.2 ioredis


    【解决方案1】:

    我不认为可以帮助你,但我成功地将 redis 与 Laravel 5.1 一起使用,这是代码。

    composer.json

        "require": {
        "php": ">=5.5.9",
        "laravel/framework": "5.1.*",
        "pusher/pusher-php-server": "^2.2",
        "predis/predis": "^1.1"
    

    routes.php

    Route::get('/setredis',[
       'as'=>'set.redis',
        'uses'=>'TestController@index'
    ]);
    
    Route::get('/getredis',[
        'as'=>'get.redis',
        'uses'=>'TestController@create'
    ]);
    
    Route::get('fire', function () {
        // this fires the event
        event(new \App\Events\EventName());
        return "event fired";
    });
    
    Route::get('test', function () {
        // this checks for the event
        return view('test');
    });
    

    TestController.php

    <?php
    
    namespace App\Http\Controllers;
    
    use Illuminate\Http\Request;
    
    use App\Http\Requests;
    use App\Http\Controllers\Controller;
    use Redis;
    
    class TestController extends Controller
    {
        /**
         * Display a listing of the resource.
         *
         * @return \Illuminate\Http\Response
         */
        public function index()
        {
            Redis::set('name', 'Taylor');
        }
    
        /**
         * Show the form for creating a new resource.
         *
         * @return \Illuminate\Http\Response
         */
        public function create()
        {
            $user = Redis::get('name');
            echo $user;
        }
    

    test.blade.php

    @extends('master')
    
    @section('content')
        <p id="power">0</p>
    @stop
    
    @section('footer')
        <script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
        <script>
            var socket = io('http://testlaravel5.com:3000');
            socket.on("test-channel", function(message){
                console.log(message);
                // increase the power everytime we load test route
                $('#power').text(parseInt($('#power').text()) + parseInt(message.data.power));
            });
        </script>
    @stop
    

    socket.js

    var app = require('express')();
    var http = require('http').Server(app);
    var io = require('socket.io')(http);
    var Redis = require('ioredis');
    var redis = new Redis();
    redis.subscribe('test-channel', function(err, count) {
    });
    redis.on('message', function(channel, message) {
        console.log('Message Recieved: ' + message);
        message = JSON.parse(message);
        io.emit(channel, message.data);
    });
    http.listen(3000, function(){
        console.log('Listening on Port 3000');
    });
    

    EventName.php

    <?php
    
    namespace App\Events;
    
    use App\Events\Event;
    use Illuminate\Queue\SerializesModels;
    use Illuminate\Contracts\Broadcasting\ShouldBroadcast;
    
    class EventName extends Event implements ShouldBroadcast
    {
        use SerializesModels;
        public $data;
        /**
         * Create a new event instance.
         *
         * @return void
         */
        public function __construct()
        {
            $this->data = array(
                'power'=> '10'
            );
        }
    
        /**
         * Get the channels the event should be broadcast on.
         *
         * @return array
         */
        public function broadcastOn()
        {
            return ['test-channel'];
        }
    }
    

    希望对你有所帮助!

    【讨论】:

    • ty 获取代码,但是当我转到 localhost:300 时,显示无法 GET/。
    • 也在 localhost:8000/fire ,错误是:找不到 Class 'App\Events\EventName'
    猜你喜欢
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 1970-01-01
    • 1970-01-01
    • 2022-09-24
    • 1970-01-01
    相关资源
    最近更新 更多