前言最近在项目中开发即时通讯应用场景。本次,我将使用Laravel搭建一个即时匹配系统,可以应用于基础的即时对战游戏。知识点如下:LaravelRedisLaravel-echoVueJs开始实际运行:安装工程依赖composerinstallpredis//安装redis扩展包npminstalllaravel-echo//安装laravel-echo客户端npminstall-glaravel-echo-server//Installlaravel-echo-serverserver的具体部署教程可以参考之前的博客:构建你的Laravel即时应用并创建竞赛系统。在我们的基础系统中,需要用户(user)和游戏(game)。比赛主要用于将匹配到的用户放在一起,将使用以下三个表来完成系统的初步设计。1.比赛表设计$table->unsignedInteger('user_id')->index();$table->unsignedInteger('rival_id')->index()->comment('对手ID');$table->unsignedInteger('winner_id')->default(0)->comment('winnerID');$table->unsignedInteger('reward')->default(0)->comment('reward');$table->json('数据')->nullable()->comment('游戏数据');$table->tinyInteger('状态')->default(0)->comment('游戏状态');$table->timestamps();$table->timestamp('end_at')->nullable()->comment('结束时间');2.用户匹配表设计$table->increments('id');$table->unsignedInteger('user_id')->unique();$table->tinyInteger('online_status')->default(0);$table->timestamp('online_at')->nullable()->index();$table->unsignedInteger('in_game_id')->default(0)->comment('在房间ID');$table->时间戳();构建视图我们通过Vue实现一个简单的视图,使用props、axios等基础组件来实现。
