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

站長(zhǎng)資訊網(wǎng)
最全最豐富的資訊網(wǎng)站

一文詳解Laravel8/LaravelS實(shí)現(xiàn)彈幕功能

本篇文章給大家?guī)?lái)了關(guān)于Laravel8/LaravelS的相關(guān)知識(shí),其中主要介紹了Laravel8基于LaravelS實(shí)現(xiàn)彈幕功能的方法步驟,感興趣的朋友,下面一起來(lái)看一下,希望對(duì)大家有幫助。

Laravel8基于LaravelS實(shí)現(xiàn)彈幕彈幕功能

簡(jiǎn)介

Laravel8基于LaravelS實(shí)現(xiàn)彈幕彈幕功能。前面學(xué)了基于Swoole實(shí)現(xiàn)視頻彈幕功能,這篇文章就來(lái)實(shí)現(xiàn)一個(gè)基于Laravel8的視頻彈幕功能。如果對(duì)webpack不熟悉,那么在安裝vue-baberrage組件時(shí)可能會(huì)報(bào)錯(cuò)卻不知如何解決。下面開(kāi)始一步一步實(shí)現(xiàn)。

前面學(xué)了基于Swoole實(shí)現(xiàn)視頻彈幕功能,這篇文章就來(lái)實(shí)現(xiàn)一個(gè)基于Laravel8的視頻彈幕功能。如果對(duì)webpack不熟悉,那么在安裝vue-baberrage組件時(shí)可能會(huì)報(bào)錯(cuò)卻不知如何解決。下面開(kāi)始一步一步實(shí)現(xiàn)。

第一步:安裝Laravel8

composer create-project laravel/laravel labarrage
登錄后復(fù)制

第二步:Laravel8中使用vue

Laravel8如何使用vue,請(qǐng)參考 Laravel8中使用vue。

注意:安裝vue時(shí)請(qǐng)使用 php artisan ui vue –auth

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

安裝vue及bootstrap

npm install
登錄后復(fù)制

安裝彈幕組件

npm install vue-baberrage --save
登錄后復(fù)制

運(yùn)行

npm run dev
登錄后復(fù)制

如果遇到BREAKING CHANGE: webpack < 5 used to include錯(cuò)誤,請(qǐng)參考 Laravel8使用webpack報(bào)錯(cuò)的解決方法。

后續(xù)只要文件改動(dòng)就需要重新編譯,后續(xù)將不再?gòu)?fù)述。

第四步:安裝LaravelS實(shí)現(xiàn)Websocket服務(wù)器

請(qǐng)參考 Laravel8使用laravel-s實(shí)現(xiàn)WebSocket服務(wù)器

第五步:項(xiàng)目中引入vue-baberrage組件

文件:resources/js/app.js 新增如下內(nèi)容

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


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

第五步:編寫文彈幕組件

后續(xù)實(shí)現(xiàn)代碼根據(jù) 學(xué)院君 文章改動(dòng)

位置: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">發(fā)送</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>
登錄后復(fù)制

第六步:視圖中使用組件

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

@extends('layouts.app')

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

第七步:注冊(cè)路由

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

執(zhí)行 npm run dev

第八步:編寫websocket服務(wù)器

文件:AppHandlersWebSocketHandler.php

<?php
namespace AppHandlers;

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

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

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

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

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

第九步:laravels.php注冊(cè)

文件:config/laravels.php

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

第十步:?jiǎn)?dòng)

php bin/laravels start
登錄后復(fù)制

這樣就完成啦

推薦學(xué)習(xí):《laravel視頻教程》

贊(0)
分享到: 更多 (0)
?
網(wǎng)站地圖   滬ICP備18035694號(hào)-2    滬公網(wǎng)安備31011702889846號(hào)
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
亚洲黄色网址| 精品五月天堂| 黑人精品一区| 天堂中文av在线资源库| 亚洲成人av观看| 亚洲高清激情| 精品1区2区3区4区| 亚洲综合中文| 国产精品一区二区中文字幕| 国产精品xxxav免费视频| 国产69精品久久| 99成人在线视频| 日韩视频一区二区三区在线播放免费观看| 尤物在线精品| 97成人在线| 91欧美日韩| 黄色亚洲免费| 欧美精品中文| 91亚洲成人| 免费精品视频| 欧美国产专区| 九九久久电影| 久久激情五月婷婷| 在线日韩视频| 国产色99精品9i| 99国产精品免费视频观看| 天堂va在线高清一区| 91亚洲成人| 三级久久三级久久久| 日产精品一区二区| 久久www成人_看片免费不卡| 69堂精品视频在线播放| 日韩一区三区| 亚洲aⅴ网站| 日韩电影免费在线观看| 色8久久久久| 成人午夜国产| 国产乱子精品一区二区在线观看| 欧美日韩视频免费观看| 亚欧成人精品| 久久人人97超碰国产公开结果| 亚洲一级淫片| 精品国模一区二区三区| 日韩精品欧美成人高清一区二区| 日韩一区二区在线免费| 欧美亚洲免费| 米奇777超碰欧美日韩亚洲| 91成人在线网站| 久久一级电影| 精品在线网站观看| 蜜臀a∨国产成人精品| 超碰在线99| 欧美伊人久久| 亚洲一区亚洲| 日韩精品欧美| 精品视频免费| 91精品在线免费视频| 韩日一区二区三区| 精品视频国产| 国产亚洲欧美日韩精品一区二区三区 | 四虎精品一区二区免费| 日韩成人精品一区二区| 欧美久久一区二区三区| 中文一区二区| 色婷婷精品视频| 国产精品22p| 欧美一级全黄| 亚洲精品乱码| 午夜在线观看免费一区| 欧美日韩一区二区三区视频播放| 成人在线超碰| 国产亚洲人成a在线v网站| 日韩一区精品字幕| 欧美~级网站不卡| 日韩毛片视频| 日本午夜大片a在线观看| 欧美国产三级| 国产精品主播| 国产欧美日韩视频在线| 日韩精品国产精品| 亚洲精品视频一二三区| 亚洲一区国产| 日韩在线一区二区| 另类国产ts人妖高潮视频| 亚洲男女av一区二区| 久久国产中文字幕| 91综合网人人| 91视频精品| 日韩欧美二区| 亚洲精品在线影院| 久久精选视频| 好看不卡的中文字幕| 久久人人88| 樱桃成人精品视频在线播放| 欧美日韩三区| 视频在线观看91| 亚洲一级淫片| 日本国产欧美| 国产一精品一av一免费爽爽| 国产精品嫩模av在线| 国产黄色一区| 欧美激情综合| 国内不卡的一区二区三区中文字幕| 国产精品.xx视频.xxtv| 国产一区福利| 久久久久欧美精品| 99国产一区| 日本成人在线网站| 久久精品国产在热久久| 日韩影院二区| 快she精品国产999| 国产亚洲电影| 中文字幕成在线观看| 久久精品免费一区二区三区| 亚洲欧美日韩高清在线| 蜜臀a∨国产成人精品| 日韩欧美美女在线观看| 国产福利资源一区| 久久国产日韩| 影音先锋久久精品| 美女在线视频一区| 久久九九精品| 综合五月婷婷| 免费观看亚洲天堂| 精品国产精品国产偷麻豆| 欧美影院精品| 久久不卡日韩美女| 国产精品白丝久久av网站| 久草免费在线视频| 性一交一乱一区二区洋洋av| 欧美中文高清| 久久精品福利| 激情久久五月| 涩涩涩久久久成人精品| 狠狠久久伊人| 蜜桃伊人久久| 久久av超碰| 亚洲精品中文字幕乱码| 亚洲ab电影| 亚洲国产成人二区| 玖玖精品视频| 国产一区二区三区国产精品| 国产高清一区| 88久久精品| 99免费精品| 日韩精品久久理论片| 日韩av二区| 亚洲ww精品| 久久九九国产| 国产精品网在线观看| 国产国产精品| 国产极品一区| 免费在线观看视频一区| 国精品产品一区| 亚洲色图国产| 久久视频精品| 精品视频亚洲| 日韩一区二区三区精品视频第3页| 黄色在线观看www| 日韩精品一区二区三区中文在线 | 红杏一区二区三区| 久久国产精品99国产| 国产精品蜜芽在线观看| 亚洲三级国产| 欧美在线观看视频一区| 久久中文字幕一区二区| 亚洲色图综合| 国产精品av一区二区| 久久三级中文| 日本a级不卡| 欧美精品激情| 蜜桃精品在线| 久久99精品久久久久久园产越南| 伊人久久大香伊蕉在人线观看热v| 色婷婷精品视频| 国产成人精品一区二区免费看京| 亚洲精品国产日韩| 亚洲成人一区| 另类专区亚洲| 精品国产网站| 国产精品一在线观看| 亚洲欧洲av| 亚洲欧美日韩精品一区二区| 亚洲电影有码| 四季av一区二区凹凸精品| 国产精品最新自拍| 久久国产麻豆精品| 免费在线观看不卡| 久久亚洲国产精品一区二区| 久久激情一区| 啪啪国产精品| 亚洲1234区| 蜜桃视频在线网站| 国产成人精品一区二区三区在线| 久久丁香四色| 免费一区二区三区在线视频| 国产精品久久久一区二区| 日本aⅴ免费视频一区二区三区| 日韩在线卡一卡二| 免费在线观看不卡|