laravel-5-redis-and-socket.io, Laravel 5与Redis和 socket.io的web socket聊天

分享于 

6分钟阅读

GitHub

  繁體 雙語
Laravel 5 WebSocket Chat with Redis and Socket.io
  • 源代码名称:laravel-5-redis-and-socket.io
  • 源代码网址:http://www.github.com/oriceon/laravel-5-redis-and-socket.io
  • laravel-5-redis-and-socket.io源代码文档
  • laravel-5-redis-and-socket.io源代码下载
  • Git URL:
    git://www.github.com/oriceon/laravel-5-redis-and-socket.io.git
    Git Clone代码到本地:
    git clone http://www.github.com/oriceon/laravel-5-redis-and-socket.io
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/oriceon/laravel-5-redis-and-socket.io
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    

    #Install 清理 Laravel 5

    composer create-project laravel/laravel --prefer-dist/path/to/your/laravel

    从供应商文件夹中删除 compiled.php 然后更新相关性

    composer update

    php artisan optimize

    #Create for chat.dev

    sudo nano/etc/nginx/conf.d/chat.conf

    添加配置

    
    server {
    
    
    
     listen 80;
    
    
     server_name chat.dev www.chat.dev;
    
    
     set $root_path '/vagrant/shared/www/chat/public';
    
    
     root $root_path;
    
    
    
     sendfile off;
    
    
    
     index index.php index.html index.htm;
    
    
    
     try_files $uri $uri/@rewrite;
    
    
    
     location @rewrite {
    
    
     rewrite ^/(.*)$/index.php?_url=/$1;
    
    
     }
    
    
    
     location ~. php {
    
    
     fastcgi_pass 127.0.0.1:9000;
    
    
     fastcgi_index/index.php;
    
    
    
     include/etc/nginx/fastcgi_params;
    
    
    
     fastcgi_split_path_info ^(.+.php)(/.+)$;
    
    
     fastcgi_param PATH_INFO $fastcgi_path_info;
    
    
     fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
    
    
     fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    
    
     }
    
    
    
     location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
    
    
     root $root_path;
    
    
     expires 0;
    
    
     break;
    
    
     }
    
    
    
     location ~/.ht {
    
    
     deny all;
    
    
     }
    
    
    
    }
    
    
    
    

    然后重新加载 Nginx

    sudo service nginx reload

    并测试 http://chat.dev/ 是否为 workin` !

    ##Corrupted 或者非更新文件 VirtualBox Bug

    如果你使用的是 VirtualBox,那么VirtualBox共享文件夹是默认同步的文件夹类型。 这些同步的文件夹使用VirtualBox共享文件夹系统文件更改从客户机同步到主机,反之亦然。

    有一个 VirtualBox Bug 与映射相关,这可能导致损坏或者不更新文件。 你应该在你正在运行的任何服务器配置文件中停用映射。

    Nginx 中的

    sendfile off;

    Apache:

    EnableSendfile Off

    见vagrant文档:http://docs.vagrantup.com/v2/synced-folders/virtualbox.html

    #Create 用户

    从 Laravel 文件夹编辑. env 文件并填充数据库凭据

    运行 php artisan migrate:installphp artisan migrate 以创建和加载默认用户表

    然后转到 http://chat.dev/auth/register,并根据需要创建两个用户。

    #Install Redis服务器

    sudo apt-get install redis-server

    #Install NodeJs

    curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

    然后安装 sudo apt-get install -y nodejs

    #Install nodejs软件包

    在 root Laravel 文件夹中运行这里命令

    npm install express ioredis socket.io --save --no-bin-links

    如果所有安装好了,你应该在/vagrant/shared/www/chat/node_modules 中有这些树包

    #Update composer.json

    添加

    
    "predis/predis":"~1.1@dev"
    
    
    
    

    并运行 composer update

    打开的配置/app。php

    在PHP环境中,为了避免与Redis冲突,我们还将修改 Laravel的Redis模块的别名。

    定位

    'Redis' => 'IlluminateSupportFacadesRedis',

    然后改名为

    'L5Redis' => 'IlluminateSupportFacadesRedis',

    #Create 路由,控制器和我们的插座聊天的视图

    打开 app/Http/routes.php 和添加

    
    Route::get('home', 'ChatController@index');
    
    
    Route::get('systemMessage', 'ChatController@systemMessage');
    
    
    
    

    从我们的存档文件中打开 app/Http/Controllers 并添加 ChatController

    app/Http/Controllers/ChatController.php

    如果你有一个全新的安装,你应该替换它,你应该替换它,否则你就会破坏它 !

    chat.js 服务器

    将 chat.js 从 root 存档复制到 Laravel,然后运行下一个命令启动套接字服务器

    node chat.js

    你应该收到 Listening on *:8080

    #Let`s 做一个测试

    http://chat.dev/home 打开两个浏览器,并使用你创建的两个用户登录

    在用户之间写一些消息

    打开 http://www.chat.dev/systemMessage,向所有已经连接的用户发送系统消息

    #Notice

    这是一个简单的演示如何工作的演示。 你可以随意扩展 !

    #Thanks

    codetutorial.io 他们的优秀教程


    WEB  RED  soc  Laravel  Redis  Websocket  
    相关文章