久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

一文詳解Laravel8/LaravelS實現彈幕功能

本篇文章給大家帶來了關于Laravel8/LaravelS的相關知識,其中主要介紹了Laravel8基于LaravelS實現彈幕功能的方法步驟,感興趣的朋友,下面一起來看一下,希望對大家有幫助。

Laravel8基于LaravelS實現彈幕彈幕功能

簡介

Laravel8基于LaravelS實現彈幕彈幕功能。前面學了基于Swoole實現視頻彈幕功能,這篇文章就來實現一個基于Laravel8的視頻彈幕功能。如果對webpack不熟悉,那么在安裝vue-baberrage組件時可能會報錯卻不知如何解決。下面開始一步一步實現。

前面學了基于Swoole實現視頻彈幕功能,這篇文章就來實現一個基于Laravel8的視頻彈幕功能。如果對webpack不熟悉,那么在安裝vue-baberrage組件時可能會報錯卻不知如何解決。下面開始一步一步實現。

第一步:安裝Laravel8

composer create-project laravel/laravel labarrage
登錄后復制

第二步:Laravel8中使用vue

Laravel8如何使用vue,請參考 Laravel8中使用vue。

注意:安裝vue時請使用 php artisan ui vue –auth

第三步:安裝及安裝vue-baberrage

安裝vue及bootstrap

npm install
登錄后復制

安裝彈幕組件

npm install vue-baberrage --save
登錄后復制

運行

npm run dev
登錄后復制

如果遇到BREAKING CHANGE: webpack < 5 used to include錯誤,請參考 Laravel8使用webpack報錯的解決方法。

后續只要文件改動就需要重新編譯,后續將不再復述。

第四步:安裝LaravelS實現Websocket服務器

請參考 Laravel8使用laravel-s實現WebSocket服務器

第五步:項目中引入vue-baberrage組件

文件:resources/js/app.js 新增如下內容

import { vueBaberrage } from 'vue-baberrage'
Vue.use(vueBaberrage)


Vue.component('danmu-component', require('./components/DanmuComponent.vue').default);
登錄后復制

第五步:編寫文彈幕組件

后續實現代碼根據 學院君 文章改動

位置:resources/js/components/DanmuComponent.vue

<template>
<div id="danmu">
<div class="stage">
<vue-baberrage
:isShow = "barrageIsShow"
:barrageList = "barrageList"
:loop = "barrageLoop"
:maxWordCount = "60"
>
</vue-baberrage>
</div>
<div class="danmu-control">
<div>
<select v-model="position">
<option value="top">從上</option>
<option value="abc">從右</option>
</select>
<input type="text" style="float:left" v-model="msg"/>
<button type="button" style="float:left" @click="addToList">發送</button>
</div>
</div>
</div>
</template>

<script>
import { MESSAGE_TYPE } from 'vue-baberrage'

export default {
name: 'danmu',
data () {
return {
msg: 'hello 自如初!',
position: 'top',
barrageIsShow: true,
currentId: 0,
barrageLoop: false,
barrageList: []
}
},
methods: {
removeList () {
this.barrageList = []
},
addToList () {
if (this.position === 'top') {
this.barrageList.push({
id: ++this.currentId,
msg: this.msg + this.currentId,
barrageStyle: 'top',
time: 8,
type: MESSAGE_TYPE.FROM_TOP,
position: 'top'
})
} else {
this.barrageList.push({
id: ++this.currentId,
msg: this.msg,
time: 15,
type: MESSAGE_TYPE.NORMAL
})
}
}
}
}
</script>
<style lang="scss" scoped>
#danmu {
text-align: center;
color: #2c3e50;
}
.stage {
height: 300px;
width: 100%;
background: #025d63;
margin: 0;
position: relative;
overflow: hidden;
}

h1, h2 {
font-weight: normal;
}
ul {
list-style-type: none;
padding: 0;
}
li {
display: inline-block;
margin: 0 10px;
}

a {
color: #42b983;
}

.baberrage-stage {
z-index: 5;
}

.baberrage-stage .baberrage-item.normal{
color:#FFF;
}
.top{
border:1px solid #66aabb;
}
.danmu-control{
position: absolute;
margin: 0 auto;
width: 100%;
bottom: 300px;
top: 70%;
height: 69px;
box-sizing: border-box;
text-align: center;
display: flex;
justify-content: center;
div {
width: 300px;
background: rgba(0, 0, 0, 0.6);
padding: 15px;
border-radius: 5px;
border: 2px solid #8ad9ff;
}
input,button,select{
height:35px;
padding:0;
float:left;
background:#027fbb;
border:1px solid #CCC;
color:#FFF;
border-radius:0;
width:18%;
box-sizing: border-box;
}
select{
height:33px;
margin-top:1px;
border: 0px;
outline: 1px solid rgb(204,204,204);
}
input{
width:64%;
height:35px;
background:rgba(0,0,0,.7);
border:1px solid #8ad9ff;
padding-left:5px;
color:#FFF;
}
}
</style>
登錄后復制

第六步:視圖中使用組件

位置:resources/views/danmu.blade.php

@extends('layouts.app')

@section('content')
<danmu-component></danmu-component>
@endsection
登錄后復制

第七步:注冊路由

Route::get('/danmu', function() {
return view('danmu');
});
登錄后復制

執行 npm run dev

第八步:編寫websocket服務器

文件:AppHandlersWebSocketHandler.php

<?php
namespace AppHandlers;

use Hhxsv5LaravelSSwooleWebSocketHandlerInterface;
use IlluminateSupportFacadesLog;
use SwooleHttpRequest;
use SwooleWebSocketFrame;
use SwooleWebSocketServer;

class WebSocketHandler implements WebSocketHandlerInterface
{
public function __construct()
{
}

// 連接建立時觸發
public function onOpen(Server $server, Request $request)
{
Log::info('WebSocket 連接建立:' . $request->fd);
}

// 收到消息時觸發
public function onMessage(Server $server, Frame $frame)
{
// $frame->fd 是客戶端 id,$frame->data 是客戶端發送的數據
Log::info("從 {$frame->fd} 接收到的數據: {$frame->data}");
foreach($server->connections as $fd){
if (!$server->isEstablished($fd)) {
// 如果連接不可用則忽略
continue;
}
$server->push($fd , $frame->data); // 服務端通過 push 方法向所有連接的客戶端發送數據
}
}

// 連接關閉時觸發
public function onClose(Server $server, $fd, $reactorId)
{
Log::info('WebSocket 連接關閉:' . $fd);
}
}
登錄后復制

第九步:laravels.php注冊

文件:config/laravels.php

'websocket' => [
'enable' => true,
'handler' => AppHandlersWebSocketHandler::class,
],
登錄后復制

第十步:啟動

php bin/laravels start
登錄后復制

這樣就完成啦

推薦學習:《laravel視頻教程》

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
午夜日韩在线| 国产模特精品视频久久久久| 亚洲欧美日本日韩| 久久午夜精品| 中文精品电影| 国产精品啊啊啊| 超碰99在线| 久久九九电影| 首页亚洲欧美制服丝腿| 日本aⅴ亚洲精品中文乱码| 国产免费播放一区二区| 国产一区二区三区国产精品| 欧美在线看片| 国产高潮在线| 石原莉奈一区二区三区在线观看| 综合国产精品| 黄色欧美在线| 久久亚洲色图| 麻豆国产欧美一区二区三区 | 日韩av中文字幕一区二区| 国产精品综合| 米奇777超碰欧美日韩亚洲| 四虎国产精品免费久久| 免费在线欧美黄色| 91精品一区国产高清在线gif| 日韩国产高清在线| 婷婷激情一区| 国产探花一区二区| 午夜精品亚洲| 国内一区二区三区| 亚洲伊人精品酒店| 国产白浆在线免费观看| 日韩午夜视频在线| 五月天激情综合网| 福利一区视频| 国产欧美精品| 日韩精品免费视频人成 | 亚洲在线网站| 亚洲永久av| 国产欧美日韩影院| 蜜臀av一区二区在线免费观看| 成人福利视频| 精品久久视频| 国产精品xxx在线观看| 免费久久99精品国产| 99tv成人| 99精品在线免费在线观看| 精品精品久久| 麻豆久久久久久| 国产极品模特精品一二| 欧美日韩99| 国产精品久久久亚洲一区| 免费精品视频| 久久国产高清| 丝袜美腿一区二区三区| 999久久久精品国产| 蜜桃av在线播放| 欧美日韩视频网站| 日韩免费福利视频| 久久国产电影| 亚洲欧洲日本mm| 免费日韩av片| 视频精品一区| 国产日本精品| 欧美aaaaaa午夜精品| 老牛国内精品亚洲成av人片| 欧美激情三区| 欧美激情另类| 在线国产一区二区| 深夜福利亚洲| 精品亚洲自拍| 99成人超碰| 日本va欧美va瓶| 成人在线黄色| 黄色日韩在线| 国产亚洲一区二区三区啪| 老司机免费视频一区二区三区| 日本不卡免费高清视频在线| 亚洲小说欧美另类婷婷| 自拍自偷一区二区三区| 国产精品亚洲四区在线观看 | 中文字幕一区久| 日本欧洲一区二区| 国产精品一区二区三区www| 成人一二三区| 日韩精品一区第一页| 国产日产精品_国产精品毛片 | 免费观看亚洲天堂| 亚洲午夜91| 久久99精品久久久野外观看| 蜜桃av在线播放| 日韩国产在线一| 久久精品动漫| 国产精品久久久久久久免费软件| 三级精品视频| 欧美激情亚洲| 久久夜色精品| 日韩不卡视频在线观看| 日本午夜精品一区二区三区电影 | 久久国产亚洲精品| 国产精品美女在线观看直播| 神马日本精品| 精品久久久久中文字幕小说| 中文一区一区三区免费在线观 | 影音先锋久久| 日韩欧美综合| 国产精品hd| 日韩国产欧美在线视频| 欧洲激情综合| 日韩大片在线观看| 国产精品115| 日韩avvvv在线播放| 免费日韩视频| 国产精品毛片| 在线国产一区二区| 国产综合色产| 在线日韩中文| 久久久久久婷| 精品理论电影在线| 国产极品嫩模在线观看91精品| 日韩精品视频网| 91亚洲无吗| 欧美伊人影院| 日本午夜精品久久久| 日韩毛片一区| 欧美亚洲三级| 久久av网址| 精品久久国产一区| 高清一区二区三区| 日韩国产在线| 欧美亚洲激情| 在线亚洲观看| 午夜国产精品视频| 美女尤物国产一区| 国产精品66| 亚洲香蕉久久| 丝袜亚洲另类欧美| 精品一区三区| 久久久国产精品网站| 成人免费电影网址| 日韩av资源网| 国产精品草草| av高清不卡| 亚洲手机在线| 欧美日韩视频| 亚洲v天堂v手机在线| 97精品97| 国产精品欧美一区二区三区不卡| 91精品啪在线观看国产18 | 国产探花一区| 亚洲www免费| 神马午夜在线视频| 在线日韩av| 怡红院精品视频在线观看极品| 亚洲电影在线| 石原莉奈在线亚洲三区| 成人在线免费观看91| 国产精品美女| 亚洲精品女人| 欧美日韩精品在线一区| 三级在线看中文字幕完整版| 中文亚洲免费| 国产精品亚洲成在人线| 国产aa精品| 欧美aa在线视频| 一区二区电影在线观看| 中文在线а√在线8| 日韩一级精品| 精品三级av在线导航| 日韩在线网址| 视频一区在线播放| 国产精品jk白丝蜜臀av小说| 日韩一区二区三区四区五区| 九九99久久精品在免费线bt| 国产精品nxnn| 日韩精品一级中文字幕精品视频免费观看 | 国产综合婷婷| jiujiure精品视频播放| 精品一区二区三区视频在线播放 | 精品久久亚洲| 视频一区二区欧美| 精品久久久网| 国产剧情一区二区在线观看| 欧美一区二区三区高清视频 | 久久国产欧美日韩精品| 国产在线视频欧美一区| 伊人久久亚洲| 亚洲激情精品| 日韩久久精品| 国产一区二区亚洲| 麻豆精品新av中文字幕| 欧美精品福利| 国产精品极品国产中出| 97久久中文字幕| 国产伦理久久久久久妇女| 日韩精品免费观看视频| 青青国产精品| 久久亚洲人体| 日韩中文首页| 亚洲综合日本|