gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费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ù)制

第五步:編寫(xiě)文彈幕組件

后續(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

第八步:編寫(xiě)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 是客戶(hù)端 id,$frame->data 是客戶(hù)端發(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 方法向所有連接的客戶(hù)端發(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)
gmnon.cn-疯狂蹂躏欧美一区二区精品,欧美精品久久久久a,高清在线视频日韩欧美,日韩免费av一区二区
777久久久精品一区二区三区| 777久久久精品一区二区三区| 男人添女人下面高潮视频| 手机免费看av网站| www.欧美日本| 丰满少妇被猛烈进入高清播放| 免费人成在线观看视频播放| 国产精品美女在线播放| 一级黄色大片儿| 日韩精品视频网址| 婷婷视频在线播放| 欧美人与动牲交xxxxbbbb| 大地资源网在线观看免费官网| 五月天av影院| 成人精品视频在线播放| 国产一区二区三区小说| 国产精品久久..4399| 亚洲精品无码国产| 天天摸天天碰天天添| www黄色av| 中文字幕av专区| 国产精品久久成人免费观看| 97超碰国产精品| 亚洲精品乱码久久久久久自慰| 日本在线观看a| 在线播放av中文字幕| 欧美 国产 精品| 日韩精品视频久久| 免费看污污网站| 国产精品亚洲天堂| 免费毛片网站在线观看| 精品久久久噜噜噜噜久久图片 | 小早川怜子一区二区三区| 99精品视频免费版的特色功能| a级片一区二区| 国产裸体免费无遮挡| av电影一区二区三区| 国产日产欧美视频| 爽爽爽在线观看| 国精产品一区一区三区视频| 日韩av片网站| 免费国产黄色网址| 天天干天天曰天天操| 日韩av综合在线观看| 黄色网络在线观看| 可以免费在线看黄的网站| 精品一区二区三区毛片| 北条麻妃在线视频| 成人午夜免费在线| 日本精品免费视频| 亚洲激情在线看| 中文字幕日本最新乱码视频| a级网站在线观看| 国产aaaaa毛片| 各处沟厕大尺度偷拍女厕嘘嘘| 色男人天堂av| 亚洲国产日韩欧美在线观看| 欧美黑人经典片免费观看| 在线视频日韩欧美| jizz大全欧美jizzcom| 黄色网页免费在线观看| 黄色成人在线免费观看| 日韩av在线中文| 亚洲综合色在线观看| aⅴ在线免费观看| 大肉大捧一进一出好爽动态图| 日本黄大片在线观看| 中文字幕第50页| 中文字幕剧情在线观看| 五月六月丁香婷婷| 亚洲美女性囗交| 欧美视频亚洲图片| 奇米777在线视频| 色中文字幕在线观看| 中文国产在线观看| 成人手机在线播放| 国产精品视频一二三四区| 亚洲美女自拍偷拍| 免费成人进口网站| wwwwww欧美| www.com毛片| 亚洲 中文字幕 日韩 无码| 亚洲激情在线观看视频| 国产美女视频免费看| 青少年xxxxx性开放hg| 人妻无码一区二区三区四区| 青青青青草视频| 免费观看成人网| 色18美女社区| 天堂8在线天堂资源bt| 成人综合视频在线| 国产欧美一区二| 在线观看成人免费| 久久精品午夜福利| 国产又黄又猛的视频| 成人短视频在线观看免费| 999一区二区三区| 日本888xxxx| 大荫蒂性生交片| av在线无限看| 国产精品igao激情视频| 日韩免费毛片视频| 永久免费在线看片视频| 男人和女人啪啪网站| 国内av免费观看| 亚洲精品高清无码视频| 欧美 日韩 国产 在线观看| 国产精品国产亚洲精品看不卡| 一级在线免费视频| 日本www在线视频| 自拍偷拍视频在线| 中文久久久久久| 日本人体一区二区| 国产av不卡一区二区| 色悠悠久久综合网| 日韩免费一级视频| 欧美日韩一级在线| 久久人人爽av| 午夜精品在线免费观看| 蜜臀av无码一区二区三区| 老司机av福利| 五月天婷婷影视| 亚洲va综合va国产va中文| 国产免费人做人爱午夜视频| 波多野结衣 作品| 久久久久久久免费视频| 成 人 黄 色 小说网站 s色| 久久久久狠狠高潮亚洲精品| 久久国产精品视频在线观看| 日本国产中文字幕| 欧美日韩中文字幕在线播放| 中文字幕在线视频一区二区| 一起操在线视频| 天天做天天干天天操| 中文字幕在线观看日| 中文字幕1234区| www.51色.com| 天堂av免费看| 日韩精品免费一区| 免费视频爱爱太爽了| 免费一级淫片aaa片毛片a级| 香港三级日本三级a视频| 免费高清一区二区三区| 国产自产在线视频| 日韩免费一级视频| 国产一级特黄a大片免费| 狠狠干狠狠操视频| 亚洲综合123| 国产一区二区三区乱码| 人妻夜夜添夜夜无码av| avav在线看| 日日干夜夜操s8| 成人在线免费高清视频| 日本欧美视频在线观看| 91黄色小网站| 91插插插影院| 欧美国产日韩激情| 丰满少妇在线观看| 亚洲小视频在线播放| 无码人妻精品一区二区三区在线| 欧美日韩一区二区在线免费观看| www.精品在线| 无码日本精品xxxxxxxxx| 精品www久久久久奶水| 久久免费看毛片| 欧美日韩国产精品激情在线播放| 免费黄色一级网站| 国产在线无码精品| 污片在线免费看| 国产传媒久久久| 久久撸在线视频| 少妇人妻大乳在线视频| 亚洲另类第一页| 九色自拍视频在线观看| 污污视频网站在线| 久久免费视频3| 国产欧美123| 国产无遮挡猛进猛出免费软件| 免费在线黄网站| 亚洲精品手机在线观看| 免费成人午夜视频| 黄色污污在线观看| 8x8x成人免费视频| 宅男噜噜噜66国产免费观看| 成人在线观看毛片| 交换做爰国语对白| 亚洲性图一区二区| 黄色片视频在线免费观看| 男人天堂网站在线| 老司机av福利| 特黄特黄一级片| 色婷婷一区二区三区在线观看| 欧美精品一区免费| 极品美女扒开粉嫩小泬| 久久精品在线免费视频| 97人人爽人人| 91丝袜超薄交口足| 在线一区二区不卡| 91网址在线观看精品| 色噜噜狠狠一区二区三区狼国成人|