Showing source for: https://onlive.io/
Duration: 0.395826s
Server: TencentEdgeOne
<!DOCTYPE html>
<html lang="vi" style="margin-top: 0px !important">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="/wp-content/themes/cakhiatv/style.css" />
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" />
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<style>img:is([sizes="auto" i], [sizes^="auto," i]) { contain-intrinsic-size: 3000px 1500px }</style>
<!-- Tá»i ưu hóa công cụ tìm kiếm bá»i Rank Math - https://rankmath.com/ -->
<title>Socolive Trá»±c Tiếp World Cup 2026 - Xem Bóng Äá HD Hôm Nay</title>
<meta name="description" content="Socolive trá»±c tiếp bóng Äá chất lượng cao á» tất cả giải Äấu, cùng Äá»i ngÅ© BLV chuyên nghiá»p, hình ảnh HD, âm thanh sá»ng Äá»ng cùng nhiá»u chuyên mục hữu Ãch."/>
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
<link rel="canonical" href="https://onlive.io" />
<meta property="og:locale" content="vi_VN" />
<meta property="og:type" content="website" />
<meta property="og:title" content="Socolive Trá»±c Tiếp World Cup 2026 - Xem Bóng Äá HD Hôm Nay" />
<meta property="og:description" content="Socolive trá»±c tiếp bóng Äá chất lượng cao á» tất cả giải Äấu, cùng Äá»i ngÅ© BLV chuyên nghiá»p, hình ảnh HD, âm thanh sá»ng Äá»ng cùng nhiá»u chuyên mục hữu Ãch." />
<meta property="og:url" content="https://onlive.io" />
<meta property="og:site_name" content="Socolive Trá»±c Tiếp Bóng Äá #1 - Xem TTBD HD Hôm Nay" />
<meta property="og:updated_time" content="2026-05-28T01:00:48+07:00" />
<meta property="article:published_time" content="2025-06-22T18:41:07+07:00" />
<meta property="article:modified_time" content="2026-05-28T01:00:48+07:00" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="Socolive Trá»±c Tiếp World Cup 2026 - Xem Bóng Äá HD Hôm Nay" />
<meta name="twitter:description" content="Socolive trá»±c tiếp bóng Äá chất lượng cao á» tất cả giải Äấu, cùng Äá»i ngÅ© BLV chuyên nghiá»p, hình ảnh HD, âm thanh sá»ng Äá»ng cùng nhiá»u chuyên mục hữu Ãch." />
<meta name="twitter:label1" content="Thá»i gian Äá» Äá»c" />
<meta name="twitter:data1" content="28 phút" />
<script type="application/ld+json" class="rank-math-schema">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://onlive.io/#organization","name":"Socolive"},{"@type":"WebSite","@id":"https://onlive.io/#website","url":"https://onlive.io","name":"Socolive Tr\u1ef1c Ti\u1ebfp B\u00f3ng \u0110\u00e1 #1 - Xem TTBD HD H\u00f4m Nay","alternateName":"Socolive Tr\u1ef1c Ti\u1ebfp B\u00f3ng \u0110\u00e1 #1 - Xem TTBD HD H\u00f4m Nay","publisher":{"@id":"https://onlive.io/#organization"},"inLanguage":"vi","potentialAction":{"@type":"SearchAction","target":"https://onlive.io/?s={search_term_string}","query-input":"required name=search_term_string"}},{"@type":"ImageObject","@id":"https://img.lightshot.app/hXkre55LTRqTF86dvOOGxA.jpg","url":"https://img.lightshot.app/hXkre55LTRqTF86dvOOGxA.jpg","width":"200","height":"200","inLanguage":"vi"},{"@type":"WebPage","@id":"https://onlive.io#webpage","url":"https://onlive.io","name":"Socolive Tr\u1ef1c Ti\u1ebfp World Cup 2026 - Xem B\u00f3ng \u0110\u00e1 HD H\u00f4m Nay","datePublished":"2025-06-22T18:41:07+07:00","dateModified":"2026-05-28T01:00:48+07:00","about":{"@id":"https://onlive.io/#organization"},"isPartOf":{"@id":"https://onlive.io/#website"},"primaryImageOfPage":{"@id":"https://img.lightshot.app/hXkre55LTRqTF86dvOOGxA.jpg"},"inLanguage":"vi"},{"@type":"Person","@id":"https://onlive.io/author","url":"https://onlive.io/author","image":{"@type":"ImageObject","@id":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g","url":"https://secure.gravatar.com/avatar/?s=96&d=mm&r=g","inLanguage":"vi"},"worksFor":{"@id":"https://onlive.io/#organization"}},{"@type":"Article","headline":"Socolive Tr\u1ef1c Ti\u1ebfp World Cup 2026 - Xem B\u00f3ng \u0110\u00e1 HD H\u00f4m Nay","keywords":"socolive","datePublished":"2025-06-22T18:41:07+07:00","dateModified":"2026-05-28T01:00:48+07:00","author":{"@id":"https://onlive.io/author"},"publisher":{"@id":"https://onlive.io/#organization"},"description":"Socolive tr\u1ef1c ti\u1ebfp b\u00f3ng \u0111\u00e1 ch\u1ea5t l\u01b0\u1ee3ng cao \u1edf t\u1ea5t c\u1ea3 gi\u1ea3i \u0111\u1ea5u, c\u00f9ng \u0111\u1ed9i ng\u0169 BLV chuy\u00ean nghi\u1ec7p, h\u00ecnh \u1ea3nh HD, \u00e2m thanh s\u1ed1ng \u0111\u1ed9ng c\u00f9ng nhi\u1ec1u chuy\u00ean m\u1ee5c h\u1eefu \u00edch.","name":"Socolive Tr\u1ef1c Ti\u1ebfp World Cup 2026 - Xem B\u00f3ng \u0110\u00e1 HD H\u00f4m Nay","@id":"https://onlive.io#richSnippet","isPartOf":{"@id":"https://onlive.io#webpage"},"image":{"@id":"https://img.lightshot.app/hXkre55LTRqTF86dvOOGxA.jpg"},"inLanguage":"vi","mainEntityOfPage":{"@id":"https://onlive.io#webpage"}}]}</script>
<!-- /Plugin SEO WordPress Rank Math -->
<link rel='dns-prefetch' href='//cdn.onlive.io' />
<script type="text/javascript">
/* <![CDATA[ */
window._wpemojiSettings = {"baseUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/72x72\/","ext":".png","svgUrl":"https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/svg\/","svgExt":".svg","source":{"concatemoji":"https:\/\/cdn.onlive.io\/wp-content\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8.1"}};
/*! This file is auto-generated */
!function(i,n){var o,s,e;function c(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(o,JSON.stringify(t))}catch(e){}}function p(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data),r=(e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0),new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data));return t.every(function(e,t){return e===r[t]})}function u(e,t,n){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\uddfa\ud83c\uddf3","\ud83c\uddfa\u200b\ud83c\uddf3")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!n(e,"\ud83d\udc26\u200d\ud83d\udd25","\ud83d\udc26\u200b\ud83d\udd25")}return!1}function f(e,t,n){var r="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):i.createElement("canvas"),a=r.getContext("2d",{willReadFrequently:!0}),o=(a.textBaseline="top",a.font="600 32px Arial",{});return e.forEach(function(e){o[e]=t(a,e,n)}),o}function t(e){var t=i.createElement("script");t.src=e,t.defer=!0,i.head.appendChild(t)}"undefined"!=typeof Promise&&(o="wpEmojiSettingsSupports",s=["flag","emoji"],n.supports={everything:!0,everythingExceptFlag:!0},e=new Promise(function(e){i.addEventListener("DOMContentLoaded",e,{once:!0})}),new Promise(function(t){var n=function(){try{var e=JSON.parse(sessionStorage.getItem(o));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(s),u.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"}),a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=function(e){c(n=e.data),a.terminate(),t(n)})}catch(e){}c(n=f(s,u,p))}t(n)}).then(function(e){for(var t in e)n.supports[t]=e[t],n.supports.everything=n.supports.everything&&n.supports[t],"flag"!==t&&(n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&n.supports[t]);n.supports.everythingExceptFlag=n.supports.everythingExceptFlag&&!n.supports.flag,n.DOMReady=!1,n.readyCallback=function(){n.DOMReady=!0}}).then(function(){return e}).then(function(){var e;n.supports.everything||(n.readyCallback(),(e=n.source||{}).concatemoji?t(e.concatemoji):e.wpemoji&&e.twemoji&&(t(e.twemoji),t(e.wpemoji)))}))}((window,document),window._wpemojiSettings);
/* ]]> */
</script>
<style id='wp-emoji-styles-inline-css' type='text/css'>
img.wp-smiley, img.emoji {
display: inline !important;
border: none !important;
box-shadow: none !important;
height: 1em !important;
width: 1em !important;
margin: 0 0.07em !important;
vertical-align: -0.1em !important;
background: none !important;
padding: 0 !important;
}
</style>
<link rel='stylesheet' id='wp-block-library-css' href='https://cdn.onlive.io/wp-content/wp-includes/css/dist/block-library/style.min.css?ver=6.8.1' type='text/css' media='all' />
<style id='classic-theme-styles-inline-css' type='text/css'>
/*! This file is auto-generated */
.wp-block-button__link{color:#fff;background-color:#32373c;border-radius:9999px;box-shadow:none;text-decoration:none;padding:calc(.667em + 2px) calc(1.333em + 2px);font-size:1.125em}.wp-block-file__button{background:#32373c;color:#fff;text-decoration:none}
</style>
<style id='global-styles-inline-css' type='text/css'>
:root{--wp--preset--aspect-ratio--square: 1;--wp--preset--aspect-ratio--4-3: 4/3;--wp--preset--aspect-ratio--3-4: 3/4;--wp--preset--aspect-ratio--3-2: 3/2;--wp--preset--aspect-ratio--2-3: 2/3;--wp--preset--aspect-ratio--16-9: 16/9;--wp--preset--aspect-ratio--9-16: 9/16;--wp--preset--color--black: #000000;--wp--preset--color--cyan-bluish-gray: #abb8c3;--wp--preset--color--white: #ffffff;--wp--preset--color--pale-pink: #f78da7;--wp--preset--color--vivid-red: #cf2e2e;--wp--preset--color--luminous-vivid-orange: #ff6900;--wp--preset--color--luminous-vivid-amber: #fcb900;--wp--preset--color--light-green-cyan: #7bdcb5;--wp--preset--color--vivid-green-cyan: #00d084;--wp--preset--color--pale-cyan-blue: #8ed1fc;--wp--preset--color--vivid-cyan-blue: #0693e3;--wp--preset--color--vivid-purple: #9b51e0;--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple: linear-gradient(135deg,rgba(6,147,227,1) 0%,rgb(155,81,224) 100%);--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan: linear-gradient(135deg,rgb(122,220,180) 0%,rgb(0,208,130) 100%);--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange: linear-gradient(135deg,rgba(252,185,0,1) 0%,rgba(255,105,0,1) 100%);--wp--preset--gradient--luminous-vivid-orange-to-vivid-red: linear-gradient(135deg,rgba(255,105,0,1) 0%,rgb(207,46,46) 100%);--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray: linear-gradient(135deg,rgb(238,238,238) 0%,rgb(169,184,195) 100%);--wp--preset--gradient--cool-to-warm-spectrum: linear-gradient(135deg,rgb(74,234,220) 0%,rgb(151,120,209) 20%,rgb(207,42,186) 40%,rgb(238,44,130) 60%,rgb(251,105,98) 80%,rgb(254,248,76) 100%);--wp--preset--gradient--blush-light-purple: linear-gradient(135deg,rgb(255,206,236) 0%,rgb(152,150,240) 100%);--wp--preset--gradient--blush-bordeaux: linear-gradient(135deg,rgb(254,205,165) 0%,rgb(254,45,45) 50%,rgb(107,0,62) 100%);--wp--preset--gradient--luminous-dusk: linear-gradient(135deg,rgb(255,203,112) 0%,rgb(199,81,192) 50%,rgb(65,88,208) 100%);--wp--preset--gradient--pale-ocean: linear-gradient(135deg,rgb(255,245,203) 0%,rgb(182,227,212) 50%,rgb(51,167,181) 100%);--wp--preset--gradient--electric-grass: linear-gradient(135deg,rgb(202,248,128) 0%,rgb(113,206,126) 100%);--wp--preset--gradient--midnight: linear-gradient(135deg,rgb(2,3,129) 0%,rgb(40,116,252) 100%);--wp--preset--font-size--small: 13px;--wp--preset--font-size--medium: 20px;--wp--preset--font-size--large: 36px;--wp--preset--font-size--x-large: 42px;--wp--preset--spacing--20: 0.44rem;--wp--preset--spacing--30: 0.67rem;--wp--preset--spacing--40: 1rem;--wp--preset--spacing--50: 1.5rem;--wp--preset--spacing--60: 2.25rem;--wp--preset--spacing--70: 3.38rem;--wp--preset--spacing--80: 5.06rem;--wp--preset--shadow--natural: 6px 6px 9px rgba(0, 0, 0, 0.2);--wp--preset--shadow--deep: 12px 12px 50px rgba(0, 0, 0, 0.4);--wp--preset--shadow--sharp: 6px 6px 0px rgba(0, 0, 0, 0.2);--wp--preset--shadow--outlined: 6px 6px 0px -3px rgba(255, 255, 255, 1), 6px 6px rgba(0, 0, 0, 1);--wp--preset--shadow--crisp: 6px 6px 0px rgba(0, 0, 0, 1);}:where(.is-layout-flex){gap: 0.5em;}:where(.is-layout-grid){gap: 0.5em;}body .is-layout-flex{display: flex;}.is-layout-flex{flex-wrap: wrap;align-items: center;}.is-layout-flex > :is(*, div){margin: 0;}body .is-layout-grid{display: grid;}.is-layout-grid > :is(*, div){margin: 0;}:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}.has-black-color{color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-color{color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-color{color: var(--wp--preset--color--white) !important;}.has-pale-pink-color{color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-color{color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-color{color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-color{color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-color{color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-color{color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-color{color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-color{color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-color{color: var(--wp--preset--color--vivid-purple) !important;}.has-black-background-color{background-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-background-color{background-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-background-color{background-color: var(--wp--preset--color--white) !important;}.has-pale-pink-background-color{background-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-background-color{background-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-background-color{background-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-background-color{background-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-background-color{background-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-background-color{background-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-background-color{background-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-background-color{background-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-background-color{background-color: var(--wp--preset--color--vivid-purple) !important;}.has-black-border-color{border-color: var(--wp--preset--color--black) !important;}.has-cyan-bluish-gray-border-color{border-color: var(--wp--preset--color--cyan-bluish-gray) !important;}.has-white-border-color{border-color: var(--wp--preset--color--white) !important;}.has-pale-pink-border-color{border-color: var(--wp--preset--color--pale-pink) !important;}.has-vivid-red-border-color{border-color: var(--wp--preset--color--vivid-red) !important;}.has-luminous-vivid-orange-border-color{border-color: var(--wp--preset--color--luminous-vivid-orange) !important;}.has-luminous-vivid-amber-border-color{border-color: var(--wp--preset--color--luminous-vivid-amber) !important;}.has-light-green-cyan-border-color{border-color: var(--wp--preset--color--light-green-cyan) !important;}.has-vivid-green-cyan-border-color{border-color: var(--wp--preset--color--vivid-green-cyan) !important;}.has-pale-cyan-blue-border-color{border-color: var(--wp--preset--color--pale-cyan-blue) !important;}.has-vivid-cyan-blue-border-color{border-color: var(--wp--preset--color--vivid-cyan-blue) !important;}.has-vivid-purple-border-color{border-color: var(--wp--preset--color--vivid-purple) !important;}.has-vivid-cyan-blue-to-vivid-purple-gradient-background{background: var(--wp--preset--gradient--vivid-cyan-blue-to-vivid-purple) !important;}.has-light-green-cyan-to-vivid-green-cyan-gradient-background{background: var(--wp--preset--gradient--light-green-cyan-to-vivid-green-cyan) !important;}.has-luminous-vivid-amber-to-luminous-vivid-orange-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-amber-to-luminous-vivid-orange) !important;}.has-luminous-vivid-orange-to-vivid-red-gradient-background{background: var(--wp--preset--gradient--luminous-vivid-orange-to-vivid-red) !important;}.has-very-light-gray-to-cyan-bluish-gray-gradient-background{background: var(--wp--preset--gradient--very-light-gray-to-cyan-bluish-gray) !important;}.has-cool-to-warm-spectrum-gradient-background{background: var(--wp--preset--gradient--cool-to-warm-spectrum) !important;}.has-blush-light-purple-gradient-background{background: var(--wp--preset--gradient--blush-light-purple) !important;}.has-blush-bordeaux-gradient-background{background: var(--wp--preset--gradient--blush-bordeaux) !important;}.has-luminous-dusk-gradient-background{background: var(--wp--preset--gradient--luminous-dusk) !important;}.has-pale-ocean-gradient-background{background: var(--wp--preset--gradient--pale-ocean) !important;}.has-electric-grass-gradient-background{background: var(--wp--preset--gradient--electric-grass) !important;}.has-midnight-gradient-background{background: var(--wp--preset--gradient--midnight) !important;}.has-small-font-size{font-size: var(--wp--preset--font-size--small) !important;}.has-medium-font-size{font-size: var(--wp--preset--font-size--medium) !important;}.has-large-font-size{font-size: var(--wp--preset--font-size--large) !important;}.has-x-large-font-size{font-size: var(--wp--preset--font-size--x-large) !important;}
:where(.wp-block-post-template.is-layout-flex){gap: 1.25em;}:where(.wp-block-post-template.is-layout-grid){gap: 1.25em;}
:where(.wp-block-columns.is-layout-flex){gap: 2em;}:where(.wp-block-columns.is-layout-grid){gap: 2em;}
:root :where(.wp-block-pullquote){font-size: 1.5em;line-height: 1.6;}
</style>
<link rel='stylesheet' id='main-style-css' href='https://cdn.onlive.io/wp-content/themes/cakhiatv/style.css?ver=6.8.1' type='text/css' media='all' />
<link rel="https://api.w.org/" href="https://onlive.io/wp-json/" /><link rel="alternate" title="JSON" type="application/json" href="https://onlive.io/wp-json/wp/v2/pages/1060" /><link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://onlive.io/xmlrpc.php?rsd" />
<meta name="generator" content="WordPress 6.8.1" />
<link rel='shortlink' href='https://onlive.io/' />
<link rel="alternate" title="oNhúng (JSON)" type="application/json+oembed" href="https://onlive.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fonlive.io%2F" />
<link rel="alternate" title="oNhúng (XML)" type="text/xml+oembed" href="https://onlive.io/wp-json/oembed/1.0/embed?url=https%3A%2F%2Fonlive.io%2F&format=xml" />
<style>
@media (min-width: 1024px) {
h1 {
font-size: 1.5em !important;
}
}
.match-teams-score {
display: flex !important;
}
@media (max-width: 767px) {
.xgplayer .xg-inner-controls {
height: 60px !important;
}
.header .logo img{
height: 35px;
}
}
@media (min-width: 481px) and (max-width: 767px) {
div#chat_messages {
max-height: 60vh !important;
}
}
</style>
<style>
.match-section {
min-height: 4800px;
}
.match-card__status {
position: absolute;
top: 13%;
left: 50%;
transform: translate(-50%, -50%);
}
.match-card__stats-content {
background: none !important;
box-shadow: none !important
}
@media (max-width: 480px) {
.team__logo {
width: 40px !important;
height: 40px !important;
}
.match-card__league {
max-width: 100px;
}
.match-card__time {
max-width: 100px;
}
.match-card__status {
max-width: 120px;
order: 1 !important;
font-size: 12px
}
.streaming {
padding: 4px;
}
.btn-view-truc-tiep {
padding: 8px 4px !important;
font-size: 12px;
}
.match-card__stats-content {
display: block !important;
}
.match-card__stats {
display: block !important
}
}
@media (min-width: 768px) and (max-width: 1024px) {
.match-card__status {
position: absolute;
top: 13%;
left: 50%;
transform: translate(-50%, -50%);
}
.match-card__league {
max-width: 110px;
}
}
</style>
<!-- Google tag (tá»ng) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-V8GXMSME5N"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-V8GXMSME5N');
</script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-3CTCBSJ8FR"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-3CTCBSJ8FR');
</script>
<script src="//s1.what-on.com/widget/service-v2.js?key=0fBdTp" async="async"></script>
</head>
<body>
<!-- Header -->
<header class="header">
<div class="container">
<div class="header__inner">
<a href="/" class="logo">
<img src="/wp-content/uploads/2025/07/logo-socolive.png" alt="Socolive TV" />
</a>
<div style="display: flex; align-items: center">
<nav class="nav">
<button class="nav__toggle">
<img src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/hamburger.svg" alt="Menu" />
</button>
<ul class="nav__menu">
<button class="nav__close" aria-label="Close menu"></button>
<li class="nav__item"><a href="https://onlive.io/lich-thi-dau" class="">Lá»CH THI ÄẤU</a></li><li class="nav__item"><a href="https://onlive.io/bang-xep-hang" class="">BẢNG XẾP HẠNG</a></li><li class="nav__item"><a href="https://onlive.io/ket-qua-bong-da" class="">KẾT QUẢ BÃNG ÄÃ</a></li><li class="nav__item"><a href="https://onlive.io/category/nhan-dinh" class="">NHẬN Äá»NH</a></li><li class="nav__item"><a href="https://onlive.io/category/tin-tuc" class="">TIN TỨC</a></li> </ul>
</nav>
<div class="header__buttons">
<a href="https://refvsbg.com/" class="btn btn--secondary header-button" rel="nofollow">
<span class="header-text">CƯỢC VSBET</span>
</a>
<a href="https://t.me/vsbet88888888888888888" rel="nofollow" target="_blank" class="btn btn--default header-button">
<span class="header-text">LIÃN Há» KM</span>
</a>
</div>
</div>
</div>
</div>
</header>
<style>
.match-card__stats-content {
background: none !important;
box-shadow: none !important;
}
</style>
<!-- Main Content -->
<!-- Main Content -->
<main style="padding-top: 1px">
<!-- Hero Section -->
<section class="hero">
<div class="container">
<div class="hero__content">
<h1 class="text-uppercase" style="text-align: left; color: white">
Socolive Trá»±c Tiếp Bóng Äá #1 - Xem TTBD HD Hôm Nay
</h1>
</div>
</div>
</section>
<!-- Sports Filter -->
<section class="sports-filter">
<div class="container">
<div class="sports-filter__inner" style="display: none">
<!-- Group 1: Sports Categories -->
<!--<div class="sports-filter__group sports-categories">
<button
class="sports-filter__button"
data-sport="all"
>
<div class="sports-filter__button-icon">
<img
src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/football.png"
alt="Tất Cả"
/>
</div>
<div class="sports-filter__button-text">Tất Cả</div>
<div class="sports-filter__button-count" id="count-all-type"></div>
</button>
<button
class="sports-filter__button"
data-sport="football"
>
<div class="sports-filter__button-icon">
<img
src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/football.png"
alt="Football"
/>
</div>
<div class="sports-filter__button-text">Bóng Äá</div>
<div class="sports-filter__button-count" id="count-football"></div>
</button>
<button class="sports-filter__button" data-sport="basketball">
<div class="sports-filter__button-icon">
<img
src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/basketball.png"
alt="Basketball"
/>
</div>
<div class="sports-filter__button-text">Bóng rá»</div>
<div class="sports-filter__button-count" id="count-basketball"></div>
</button>
<!-- <button class="sports-filter__button" data-sport="tennis">
<div class="sports-filter__button-icon">
<img src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/tennis.png" alt="Tennis" />
</div>
<div class="sports-filter__button-text">Tennis</div>
<div class="sports-filter__button-count" id="count-tennis"></div>
</button> -->
<!--<button class="sports-filter__button" data-sport="volleyball">
<div class="sports-filter__button-icon">
<img
src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/volleyball.png"
alt="Volleyball"
/>
</div>
<div class="sports-filter__button-text">Bóng chuyá»n</div>
<div class="sports-filter__button-count" id="count-volleyball"></div>
</button> -->
<div class="livescore-switch">
<label class="switch">
<input type="checkbox" id="livescoreToggle" />
<span class="slider"></span>
</label>
<span class="livescore-label">Livescore</span>
</div>
</div>
<!-- Divider -->
<div class="sports-filter__divider"></div>
<!-- Group 2: Match Filters -->
<div class="sports-filter__group match-filters">
<button class="sports-filter__button_child active" data-filter="child_all">
<div class="sports-filter__button-icon">
<img src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/all.png" alt="All" />
</div>
<div class="sports-filter__button-text">Tất cả</div>
<div class="sports-filter__button-count" id="count-all-type"></div>
</button>
<button class="sports-filter__button_child live" data-filter="live">
<div class="sports-filter__button-icon">
<img src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/live.png" alt="Live" />
</div>
<div class="sports-filter__button-text">Äang Live</div>
<div class="sports-filter__button-count" id="count-live"></div>
</button>
<!--<button class="sports-filter__button_child" data-filter="hot">
<div class="sports-filter__button-icon">
<img src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/hot.png" alt="Hot" />
</div>
<div class="sports-filter__button-text">Tráºn HOT</div>
<div class="sports-filter__button-count" id="count-hot">48</div>
</button>-->
<button class="sports-filter__button_child" data-filter="date" data-value="">
<div class="sports-filter__button-icon">
<img src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/calendar.png" alt="Today" />
</div>
<div class="sports-filter__button-text">Hôm Nay</div>
<div class="sports-filter__button-count" id="count-today"></div>
</button>
<button class="sports-filter__button_child" data-filter="date" data-value="">
<div class="sports-filter__button-icon">
<img
src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/images/icons/calendar.png"
alt="Tomorrow"
/>
</div>
<div class="sports-filter__button-text">Ngà y Mai</div>
<div class="sports-filter__button-count" id="count-tomorrow"></div>
</button>
<!--
<button class="sports-filter__button_child" data-filter="no_blv">
<div class="sports-filter__button-text">Live không BLV</div>
<div class="sports-filter__button-count" id="noblv-live">0</div>
</button>
-->
</div>
</div>
</div>
</section>
<!-- Featured Matches -->
<section class="featured-matches">
<div class="container">
<div class="match-section">
<div id="match-list" class="matches">
</div>
</div>
<!--<div
style="
display: flex;
justify-content: center;
margin-top: 1rem;
margin-bottom: 1rem;
"
>
<a href="#" class="btn btn--readmore">
<span>Xem thêm lá»ch trá»±c tiếp -></span>
</a>
</div>-->
</div>
</section>
<!-- Content Navigation Section -->
<section class="content-nav">
<div class="container">
<div class="content-nav__container" style="max-height:800px !important">
<div class="content-nav__lists">
<div class="content-nav__list">
<!-- Nếu bạn vẫn muá»n giữ Mục lục nà y thá»§ công, thì Äá» lại -->
<p style="font-weight: bold; font-size: 120%">Mục Lục</p>
<!-- Hoặc có thá» xoá toà n bá» <ul> nà y nếu muá»n Gutenberg xá» lý luôn -->
<div class="content-nav__divider"></div>
<div class="content-nav__text">
<p>Trong thế giá»i bóng Äá nÆ¡i từng giây Äá»u có thá» là m thay Äá»i cảm xúc cá»§a hà ng triá»u con ngưá»i, <strong><a href="/">Socolive</a></strong> xuất hiá»n như <strong>má»t biá»u tượng cá»§a trải nghiá»m sá»ng Äá»ng â chân thá»±c â mạnh mẽ</strong>. Không chá» ÄÆ¡n thuần là má»t trang xem bóng Äá trá»±c tuyến, <strong>Socolive là ná»n tảng ÄÆ°á»£c thiết kế Äá» phục vụ những ngưá»i yêu bóng Äá theo cách xứng Äáng nhất</strong>: nhanh hÆ¡n, sắc nét hÆ¡n và ⦠không bao giá» Äá» bạn bá» lỡ bất kỳ khoảnh khắc quyết Äá»nh nà o.</p>
<p>Chúng tôi tin rằng:<br>ð <strong>Bóng Äá phải ÄÆ°á»£c thưá»ng thức theo cách Äá»nh nhất.</strong><br>ð <strong>Má»i tráºn Äấu phải mang trá»n cảm xúc, không bá» giáºt lag, không bá» gián Äoạn.</strong><br>ð <strong>Ngưá»i hâm má» xứng Äáng có má»t ná»n tảng á» tầm cao má»i.</strong></p>
<p>Äó là lý do Socolive ÄÆ°á»£c xây dá»±ng â như má»t <strong>thương hiá»u dẫn Äầu</strong> trong lÄ©nh vá»±c trá»±c tiếp bóng Äá chất lượng cao.</p>
<figure class="wp-block-image size-large"><img decoding="async" src="https://img.lightshot.app/hXkre55LTRqTF86dvOOGxA.jpg" alt="Giá»i thiá»u tá»ng quan vá» kênh xem bóng Äá trá»±c tuyến Socolive TV"/><figcaption class="wp-element-caption">Giá»i thiá»u tá»ng quan vá» kênh xem bóng Äá trá»±c tuyến Socolive TV</figcaption></figure>
<h2 class="wp-block-heading">Socolive là gì? â Ná»n tảng dà nh cho fan bóng Äá chân chÃnh</h2>
<p>Socolive không phải là má»t trang xem bóng Äá ÄÆ°á»£c tạo ra cho có. Từ ngà y Äầu tiên, chúng tôi Äã Äặt mục tiêu trá» thà nh ná»n tảng mang lại trải nghiá»m xem bóng Äá tháºt sá»± khác biá»t cho fan Viá»t. Hình ảnh phải chuẩn HD, tá»c Äá» phải mượt như truyá»n hình vá» tinh và Äặc biá»t là phải á»n Äá»nh ngay cả khi hà ng trÄm nghìn ngưá»i cùng xem má»t tráºn cầu kinh Äiá»n. Vá»i Socolive, bạn không chá» xem â bạn hòa mình và o tráºn Äấu.</p>
<h3 class="wp-block-heading">Socolive â má»t thương hiá»u trá»±c tiếp bóng Äá ÄÆ°á»£c xây dá»±ng từ tiêu chuẩn cao</h3>
<p>Ngay khi ra mắt, chúng tôi Äã theo Äuá»i triết lý rõ rà ng: <em>âTrải nghiá»m tá»t má»i xứng Äáng Äá» phục vụ fan bóng Äá.â</em> ChÃnh vì váºy, má»i thứ từ giao diá»n, tá»c Äá» load trang, há» thá»ng server, Äến chất lượng truyá»n dẫn Äá»u ÄÆ°á»£c tá»i ưu liên tục. Bạn có thá» cảm nháºn sá»± khác biá»t ngay khi và o website: sạch, nhẹ, mượt và luôn sẵn sà ng cho tráºn Äấu quan trá»ng.</p>
<p>Má»t và i giá trá» thương hiá»u luôn ÄÆ°á»£c Äặt lên hà ng Äầu gá»m:</p>
<ul class="wp-block-list">
<li><strong>Tá»c Äá» truyá»n tải mạnh</strong>, hạn chế tá»i Äa delay.</li>
<li><strong>Chất lượng hình ảnh á»n Äá»nh</strong>, luôn ưu tiên Full HD.</li>
<li><strong>Há» thá»ng server chá»u tải tá»t</strong>, Äặc biá»t và o tráºn hot.</li>
<li><strong>Giao diá»n ÄÆ¡n giản</strong>, phù hợp thói quen cá»§a fan Viá»t.</li>
</ul>
<h3 class="wp-block-heading">Socolive sinh ra Äá» giải quyết vấn Äá» gì?</h3>
<p>Thá» trưá»ng xem bóng Äá online thì nhiá»u, nhưng phần lá»n Äá»u gặp những vấn Äá» khiến fan âcạn lá»iâ: quảng cáo che kÃn mà n hình, link die bất chợt, server lag Äến mức xem bóng Äá mà như Äang xem slideshow, hay Äá» trá»
Äến cả phút so vá»i truyá»n hình.</p>
<p>Äó là lý do Socolive ra Äá»i: Äá» tạo ra má»t nÆ¡i xem bóng Äá <strong>Äúng nghÄ©a</strong>, nÆ¡i bạn có thá» yên tâm xem các tráºn cầu Äá»nh cao mà không bá» gián Äoạn.</p>
<p>Má»t sá» bất cáºp mà Socolive muá»n xóa bá» cho fan:</p>
<ul class="wp-block-list">
<li>Quảng cáo pop-up bá»±c mình giữa tráºn.</li>
<li>Link lá»i, link die ngay trưá»c giá» bóng lÄn.</li>
<li>Server yếu gây lag, Äứng hình.</li>
<li>Hình ảnh má», chất lượng kém.</li>
<li>Delay quá lâu khiến mất cảm xúc.</li>
</ul>
<h3 class="wp-block-heading">Sứ má»nh cá»§a thương hiá»u Socolive</h3>
<p>Sứ má»nh cá»§a Socolive không chá» là phát tráºn Äấu. Chúng tôi muá»n tạo ra má»t âsân váºn Äá»ng trá»±c tuyếnâ cho ngưá»i hâm má» Viá»t Nam â nÆ¡i má»i cú sút, má»i pha xá» lý, má»i khoảnh khắc cảm xúc Äá»u ÄÆ°á»£c truyá»n tải trá»n vẹn. Bóng Äá là cảm xúc, và nhiá»m vụ cá»§a Socolive là giữ trá»n cảm xúc Äó cho bạn, dù bạn Äang á» Äâu hay Äang xem bằng thiết bá» gì.</p>
<h2 class="wp-block-heading">Vì sao Socolive trá» thà nh lá»±a chá»n hà ng Äầu cá»§a fan bóng Äá Viá»t Nam?</h2>
<p>Anh em mê bóng Äá chá»n Socolive không phải vì ngẫu nhiên. Äó là kết quả cá»§a má»t quá trình Äầu tư nghiêm túc và o trải nghiá»m ngưá»i dùng, chất lượng stream và tÃnh á»n Äá»nh cá»§a há» thá»ng.</p>
<h3 class="wp-block-heading">Trá»±c tiếp Full HD â mượt, nét, xem má»t lần là mê</h3>
<p>Hình ảnh luôn là linh há»n cá»§a bóng Äá trá»±c tuyến. Tại Socolive, bạn sẽ thấy ngay sá»± khác biá»t khi hình ảnh sắc nét, chuyá»n Äá»ng mượt mà và mà u sắc trung thá»±c. Không còn tình trạng vỡ hình hay lag má»i khi bóng di chuyá»n nhanh. Cảm giác xem bóng Äá vì thế cÅ©ng trá»n vẹn hÆ¡n.</p>
<p>Những yếu tá» là m nên chất lượng cá»§a Socolive gá»m:</p>
<ul class="wp-block-list">
<li>Khung hình Full HD á»n Äá»nh</li>
<li>Tá»c Äá» khung hình cao, hạn chế blur</li>
<li>Chất lượng video tá»i ưu theo tá»c Äá» mạng</li>
<li>Giảm delay tá»i Äa, gần sát thá»i gian thá»±c</li>
</ul>
<h3 class="wp-block-heading">Không quảng cáo che mà n hình â xem bóng Äá là Äá» táºn hưá»ng</h3>
<p>Không ai thÃch Äang xem bóng mà quảng cáo nhảy ra Äúng lúc bóng Äến vòng cấm. Socolive hiá»u Äiá»u nà y hÆ¡n ai hết, nên luôn cá» gắng giữ mà n hình á» trạng thái sạch nhất có thá». Táºp trung trải nghiá»m cá»§a fan bóng Äá là ưu tiên sá» má»t, và Äó cÅ©ng là Äiá»m là m nên sá»± khác biá»t cá»§a thương hiá»u.</p>
<h3 class="wp-block-heading">Server mạnh â tráºn hot cÅ©ng không lo giáºt lag</h3>
<p>Những tráºn như MU â Liverpool, El Clasico hay C1 luôn thu hút lượng ngưá»i xem khá»ng lá». Nhiá»u trang thưá»ng âquỳâ Äúng lúc cao trà o, khiến anh em mất hứng. Socolive Äầu tư và o há» thá»ng server riêng, cân tải tá»t, tá»± Äá»ng chuyá»n tuyến khi có dấu hiá»u quá tải⦠Äá» Äảm bảo bạn xem mượt từ Äầu Äến cuá»i.</p>
<p>Sức mạnh há» thá»ng thá» hiá»n qua:</p>
<ul class="wp-block-list">
<li>Khả nÄng chá»u tải cao, Äông ngưá»i xem vẫn mượt</li>
<li>Công nghỠcân bằng tải thông minh</li>
<li>Nhiá»u tuyến dá»± phòng khi server chÃnh quá tải</li>
</ul>
<h3 class="wp-block-heading">Hoà n toà n miá»
n phà â Äúng tinh thần bóng Äá Viá»t</h3>
<p>Fan bóng Äá Viá»t Nam luôn có tinh thần âchia sẻ â kết ná»iâ. Và Socolive cÅ©ng váºy: má»i thứ Äá»u hoà n toà n miá»
n phÃ. Bạn không cần ÄÄng ký, không cần nạp tiá»n, không bá» giá»i hạn tÃnh nÄng. Chá» cần và o là xem.</p>
<h3 class="wp-block-heading">Xem bóng Äá má»i nÆ¡i, trên má»i thiết bá»</h3>
<p>Dù bạn Äang nằm trên giưá»ng cầm Äiá»n thoại, Äang ngá»i trong quán cà phê vá»i chiếc laptop, hay Äang báºt Smart TV Äá» xem cùng bạn bè⦠Socolive Äá»u há» trợ mượt mà . Chúng tôi tá»i ưu cho má»i thiết bá» Äá» bạn không bá» bá» lỡ bất kỳ tráºn Äấu nà o.</p>
<figure class="wp-block-image size-large"><img decoding="async" src="https://img.lightshot.app/uDGLV2eiS5mPdu4JamJeFQ.jpg" alt="Vì sao Socolive trá» thà nh lá»±a chá»n hà ng Äầu cá»§a fan bóng Äá Viá»t Nam?"/><figcaption class="wp-element-caption">Vì sao Socolive trá» thà nh lá»±a chá»n hà ng Äầu cá»§a fan bóng Äá Viá»t Nam?</figcaption></figure>
<h2 class="wp-block-heading">Socolive trá»±c tiếp bóng Äá Äầy Äá»§ á» các giải Äấu lá»n nhá»</h2>
<p>Äá»i vá»i ngưá»i hâm má» bóng Äá, Äiá»u quan trá»ng nhất là có nÆ¡i Äá» xem <strong>má»i tráºn Äấu mình quan tâm</strong>, từ những tráºn tầm cỡ thế giá»i Äến các giải quá»c ná»i hay bóng Äá trẻ. Socolive hiá»u Äiá»u Äó hÆ¡n ai hết, và vì váºy ná»n tảng luôn cá» gắng mang Äến danh sách giải Äấu phong phú nhất có thá». Bạn yêu thÃch Premier League? Có. Bạn mê Champions League? Có. Bạn thÃch xem U23 Viá»t Nam hay Äá»i tuyá»n nữ? Tất nhiên là có.</p>
<p>Socolive không bá» sót bất kỳ giải Äấu nà o mà ngưá»i hâm má» Viá»t Nam quan tâm. Má»i ngà y, há» thá»ng sẽ cáºp nháºt lá»ch thi Äấu theo giá» Viá»t Nam, giúp fan dá»
dà ng theo dõi những tráºn cầu mình yêu thÃch mà không cần mất thá»i gian tìm kiếm.</p>
<p>Dưá»i Äây là những há» thá»ng giải ÄÆ°á»£c Socolive trá»±c tiếp Äầy Äá»§ và Äá»u Äặn:</p>
<h3 class="wp-block-heading">Ngoại hạng Anh (Premier League) â Giải Äấu ÄÆ°á»£c xem nhiá»u nhất tại Viá»t Nam</h3>
<p>Nếu nói Premier League là âmón Än chÃnhâ cá»§a fan bóng Äá Viá»t thì cÅ©ng chẳng sai. Tá»c Äá» tráºn Äấu nhanh, ká»ch tÃnh cao, cạnh tranh khá»c liá»t và quy tụ toà n ngôi sao. ChÃnh vì thế, Socolive luôn Äảm bảo cáºp nháºt sá»m nhất lá»ch thi Äấu, link trá»±c tiếp, thông tin Äá»i hình và phân tÃch trưá»c tráºn.</p>
<p>Tại Socolive, các tráºn Äấu Premier League luôn ÄÆ°á»£c ưu tiên chất lượng cao nhất vì Äây là giải mà fan Viá»t quan tâm nhất.<br>Bạn có thá» theo dõi Äầy Äá»§ các Äá»i bóng như:</p>
<ul class="wp-block-list">
<li>Manchester United</li>
<li>Liverpool</li>
<li>Manchester City</li>
<li>Chelsea</li>
<li>Arsenal</li>
<li>Tottenham</li>
</ul>
<p>Và tất nhiên, tất cả Äá»u ÄÆ°á»£c trá»±c tiếp bằng chất lượng HD, Ãt delay và có bình luáºn tiếng Viá»t.</p>
<h3 class="wp-block-heading">Champions League, Europa League â nÆ¡i những tráºn cầu Äá»nh cao diá»
n ra</h3>
<p>Nhắc tá»i Champions League là nhắc tá»i những Äêm bóng Äá rá»±c lá»a, nÆ¡i các Äá»i bóng mạnh nhất châu Ãu Äá»i Äầu nhau. Vá»i Socolive, bạn sẽ luôn ÄÆ°á»£c xem những tráºn Äấu Äá»nh cao nà y má»t cách trá»n vẹn nhất.</p>
<p>Trải nghiá»m Äặc trưng cá»§a Socolive á» C1 và C2:</p>
<ul class="wp-block-list">
<li>Hình ảnh sắc nét</li>
<li>Server á»n Äá»nh, không lo lag</li>
<li>Lá»ch thi Äấu cáºp nháºt ngay sau khi UEFA công bá»</li>
<li>Bình luáºn tiếng Viá»t Äầy Äá»§</li>
</ul>
<p>Những Äêm C1 luôn là âÄặc sảnâ Socolive â và fan bóng Äá Viá»t chắc chắn sẽ thÃch Äiá»u nà y.</p>
<h3 class="wp-block-heading">La Liga, Serie A, Bundesliga, Ligue 1 â Top các giải châu Ãu luôn có mặt</h3>
<p>Không chá» Premier League hay Champions League, Socolive còn trá»±c tiếp Äầy Äá»§ những giải vô Äá»ch quá»c gia hà ng Äầu thế giá»i. Äiá»u nà y giúp fan theo dõi ÄÆ°á»£c hà nh trình cá»§a các siêu sao á» từng giải.</p>
<p>Má»t sá» Äiá»m ná»i báºt:</p>
<ul class="wp-block-list">
<li><strong>La Liga:</strong> Messi Äã rá»i Äi nhưng Real và Barca vẫn Äá»§ sức tạo nên hà ng triá»u cảm xúc má»i tuần.</li>
<li><strong>Serie A:</strong> Những tráºn derby rá»±c lá»a như Inter â AC Milan luôn thu hút fan Viá»t.</li>
<li><strong>Bundesliga:</strong> Giải Äấu Äá» cao tá»c Äá», thÃch hợp cho những ai thÃch tráºn Äấu nhiá»u bà n thắng.</li>
<li><strong>Ligue 1:</strong> NÆ¡i từng chứng kiến PSG cá»§a Mbappé, Neymar, Messi khuynh Äảo.</li>
</ul>
<p>Nhìn chung, bạn hâm má» giải nà o â Socolive Äá»u có link Äá» phục vụ.</p>
<h3 class="wp-block-heading">V-League, Cúp Quá»c Gia â giải bóng Äá Viá»t Nam không bao giá» thiếu</h3>
<p>Bên cạnh những sân chÆ¡i quá»c tế, Socolive luôn dà nh má»t phần sức mạnh há» thá»ng Äá» trá»±c tiếp các giải trong nưá»c, Äặc biá»t là :</p>
<ul class="wp-block-list">
<li>V-League</li>
<li>Cúp Quá»c Gia</li>
<li>Giải trẻ U21, U19</li>
<li>Giải nữ quá»c gia</li>
</ul>
<p>Những tráºn Äấu cá»§a CLB Hà Ná»i, Viettel, HAGL, Thanh Hóa, CAHN⦠luôn ÄÆ°á»£c cáºp nháºt Äầy Äá»§. Fan bóng Äá Viá»t Nam thưá»ng rất quan tâm Äến sá»± phát triá»n cá»§a bóng Äá nưá»c nhà , và Socolive muá»n Äá»ng hà nh cùng tinh thần Äó.</p>
<h3 class="wp-block-heading">AFF Cup, Asian Cup, SEA Games â nÆ¡i trái tim fan Viá»t Äáºp nhanh nhất</h3>
<p>Socolive luôn ưu tiên các tráºn Äấu cá»§a Äá»i tuyá»n Viá»t Nam, không chá» á» cấp Äá» ÄTQG mà cả U23, U20 hay Äá»i tuyá»n nữ. Äây là những giải Äấu mà ngưá»i hâm má» Viá»t dá»n trá»n cảm xúc â từ những chiến thắng nghẹt thá» Äến những tráºn cầu lá»ch sá».</p>
<p>Bạn có thỠxem tại Socolive:</p>
<ul class="wp-block-list">
<li>AFF Cup</li>
<li>Asian Cup</li>
<li>SEA Games</li>
<li>Vòng loại World Cup</li>
<li>U23 châu Ã</li>
<li>U20 World Cup</li>
</ul>
<p>Những tráºn Äấu nà y luôn thu hút lượng ngưá»i xem khá»ng lá», nhưng vá»i há» thá»ng cá»§a Socolive, bạn vẫn có thá» xem mượt từ Äầu Äến cuá»i.</p>
<h3 class="wp-block-heading">Giao hữu quá»c tế, World Cup, Euro â những sân chÆ¡i lá»n nhất hà nh tinh</h3>
<p>Dù chá» là giao hữu, Socolive vẫn cáºp nháºt Äầy Äá»§ cho những ngưá»i thÃch theo dõi phong Äá» cá»§a các Äá»i tuyá»n lá»n. Khi Äến World Cup hay Euro, má»i thứ ÄÆ°á»£c nâng lên má»t cấp Äá» hoà n toà n khác.</p>
<p>Fan Viá»t xem các tráºn:</p>
<ul class="wp-block-list">
<li>Brazil</li>
<li>Argentina</li>
<li>Pháp</li>
<li>Äức</li>
<li>Tây Ban Nha</li>
<li>Bá» ÄÃ o Nha</li>
</ul>
<p>Äá»u có thá» yên tâm vì Socolive luôn có link trá»±c tiếp chất lượng cao, bình luáºn tiếng Viá»t và cáºp nháºt sá»m.</p>
<h3 class="wp-block-heading">Bóng Äá nữ â bóng Äá trẻ â ná»i dung Äầy Äá»§ cho má»i fan</h3>
<p>Nhiá»u fan không chá» theo dõi bóng Äá nam mà còn quan tâm Äến bóng Äá nữ và các Äá»i trẻ. Socolive Äảm bảo có link xem những tráºn nà y, từ giải khu vá»±c Äến giải thế giá»i.</p>
<p>Các ná»i dung Socolive luôn cáºp nháºt:</p>
<ul class="wp-block-list">
<li>World Cup nữ</li>
<li>Giải nữ châu Ã</li>
<li>Giải U17, U20</li>
<li>Giải trẻ các CLB châu Ãu</li>
</ul>
<p>Nhá» Äó, fan bóng Äá có thá» theo dõi toà n bá» há» sinh thái bóng Äá chứ không bá» giá»i hạn trong má»t và i giải.</p>
<figure class="wp-block-image size-large"><img decoding="async" src="https://img.lightshot.app/X7aYKqPERoKW_s_gi6_OUQ.jpg" alt="Mục tiêu phát triá»n cá»§a Socolive TV trong tương lai"/><figcaption class="wp-element-caption">Mục tiêu phát triá»n cá»§a Socolive TV trong tương lai</figcaption></figure>
<h2 class="wp-block-heading">TÃnh nÄng ná»i báºt khi xem bóng Äá tại Socolive</h2>
<p>Äá» trá» thà nh ná»n tảng xem bóng Äá ÄÆ°á»£c yêu thÃch, chá» có âcó link xemâ thôi là chưa Äá»§. Socolive Äầu tư rất mạnh và o trải nghiá»m tá»ng thá» cá»§a ngưá»i dùng â từ tá»c Äá», giao diá»n, chất lượng truyá»n tải Äến cách hiá»n thá» thông tin. Tất cả Äá»u ÄÆ°á»£c xây dá»±ng Äá» Äảm bảo rằng bất kỳ fan bóng Äá nà o, dù là xem trên Äiá»n thoại hay TV, cÅ©ng Äá»u cảm thấy thoải mái, dá»
dùng và hà i lòng.</p>
<p>Dưá»i Äây là những tÃnh nÄng giúp Socolive khác biá»t hẳn so vá»i những ná»n tảng xem bóng Äá trá»±c tuyến thông thưá»ng.</p>
<h3 class="wp-block-heading">Giao diá»n tá»i ưu cho fan bóng Äá â ÄÆ¡n giản, dá»
dùng và cực nhanh</h3>
<p>Má»t trang xem bóng Äá tá»t phải là trang Äá» fan âvà o là xemâ, không phải loay hoay tìm nút, không phải lưá»t cả cây sá» má»i tá»i tráºn mình muá»n xem. Vì váºy Socolive thiết kế giao diá»n theo Äúng thói quen cá»§a ngưá»i dùng Viá»t: rõ rà ng, trá»±c quan và táºp trung và o tráºn Äấu.</p>
<p>Trải nghiá»m chung cá»§a fan khi và o Socolive thưá»ng là :</p>
<ul class="wp-block-list">
<li>Giao diá»n ná»n tá»i dá»
nhìn, phù hợp xem ban Äêm</li>
<li>Các tráºn hot ÄÆ°á»£c Äặt ngay Äầu trang</li>
<li>Thá»i gian bắt Äầu tráºn ÄÆ°á»£c hiá»n thá» rõ rà ng</li>
<li>Dá»
dà ng chuyá»n Äá»i giữa âLá»ch thi Äấu â Trá»±c tiếp â Kết quả â Highlightâ</li>
</ul>
<p>Má»i thứ Äá»u ÄÆ°á»£c là m Äá» anh em và o là xem ÄÆ°á»£c ngay, không rưá»m rà , không gây khó chá»u.</p>
<h3 class="wp-block-heading">Không quảng cáo che mà n hình â giữ trá»n cảm xúc tráºn Äấu</h3>
<p>Má»t trong những Äiá»u fan bóng Äá ghét nhất khi xem online là quảng cáo che ngang che dá»c mà n hình Äúng lúc bóng tá»i tình huá»ng nguy hiá»m. Socolive hiá»u Äiá»u nà y, vì chÃnh chúng tôi cÅ©ng là fan bóng Äá. Vì váºy, trải nghiá»m xem trên Socolive luôn ÄÆ°á»£c ưu tiên sạch nhất có thá».</p>
<p>Äiá»u fan yêu thÃch á» trải nghiá»m nà y là :</p>
<ul class="wp-block-list">
<li>Không quảng cáo che giữa mà n hình</li>
<li>Không pop-up báºt lên liên tục</li>
<li>Không banner dà y Äặc khiến trang nặng</li>
<li>Má»i thứ Äá»u hưá»ng Äến tráºn Äấu â không gì khác</li>
</ul>
<p>Nhá» sá»± tá»i giản nà y, câu chuyá»n xem bóng Äá cá»§a bạn trá» nên liá»n mạch, không bá» phá cảm xúc.</p>
<h3 class="wp-block-heading">Server siêu mạnh â tráºn hot cÅ©ng không lo nghẽn</h3>
<p>Có những tráºn mà cả thế giá»i dán mắt và o mà n hình: El Clasico, Derby nưá»c Anh, Derby Milano, chung kết C1, tráºn ÄT Viá»t Nam Äá vòng loại⦠Lượng ngưá»i xem tÄng Äá»t biến có thá» khiến nhiá»u website âxá»uâ ngay phút Äầu tiên. Nhưng tại Socolive, má»i tráºn Äấu Äá»u ÄÆ°á»£c chuẩn bá» trưá»c bằng há» thá»ng server mạnh mẽ.</p>
<p>Những Äiá»m giúp Socolive luôn Äứng vững trong những tráºn Äông ngưá»i xem:</p>
<ul class="wp-block-list">
<li>Server cân tải tá»± Äá»ng khi tá»· lá» ngưá»i xem tÄng mạnh</li>
<li>Tá»i ưu ÄÆ°á»ng truyá»n Äá» hạn chế lag và Äứng hình</li>
<li>Há» thá»ng giám sát 24/7, xá» lý sá»± cá» ngay láºp tức</li>
<li>Luôn có server phụ Äá» chuyá»n Äá»i khi cần thiết</li>
</ul>
<p>Fan thưá»ng nói vui rằng âtráºn Äâu Äông, Socolive cà ng mượtâ, và Äó cÅ©ng chÃnh là Äiá»u chúng tôi tá»± hà o.</p>
<h3 class="wp-block-heading">Có nhiá»u chế Äá» chất lượng video â phù hợp má»i tá»c Äá» mạng</h3>
<p>Không phải ai cÅ©ng có mạng Internet á»n Äá»nh, Äặc biá»t khi xem bằng 4G/5G hoặc á» những nÆ¡i wifi yếu. Vì váºy Socolive cung cấp nhiá»u chế Äá» video khác nhau Äá» fan tá»± lá»±a chá»n sao cho phù hợp vá»i ÄÆ°á»ng truyá»n cá»§a mình.</p>
<p>Fan có thá» chá»n:</p>
<ul class="wp-block-list">
<li>480p siêu nhẹ</li>
<li>720p á»n Äá»nh</li>
<li>1080p Full HD khi mạng mạnh</li>
<li>Auto Mode (tá»± Äá»ng tá»i ưu theo tá»c Äá» mạng)</li>
</ul>
<p>Nhá» Äó, ngay cả khi bạn không á» nÆ¡i có Internet tá»t, bạn vẫn không bá» bá» lỡ tráºn Äấu.</p>
<h3 class="wp-block-heading">Có bình luáºn viên tiếng Viá»t â tÄng cảm xúc khi xem</h3>
<p>Nhiá»u tráºn Äấu quá»c tế thưá»ng chá» có bình luáºn tiếng Anh hoặc tiếng nưá»c ngoà i, Äiá»u nà y Äôi khi khiến fan Viá»t cảm thấy âthiếu lá»aâ. Socolive khắc phục Äiá»u nà y bằng viá»c bá» sung ÄÆ°á»ng tiếng Viá»t cho nhiá»u tráºn Äấu, giúp anh em cảm nháºn tráºn Äấu trá»n vẹn hÆ¡n, dá»
theo dõi hÆ¡n và sá»ng cùng nhá»p Äiá»u cá»§a từng pha bóng.</p>
<p>Äiá»u nà y Äặc biá»t ÄÆ°á»£c ưa thÃch á»:</p>
<ul class="wp-block-list">
<li>Các tráºn Premier League</li>
<li>Champions League</li>
<li>La Liga</li>
<li>Các tráºn Äấu cá»§a ÄT Viá»t Nam</li>
<li>AFF Cup â SEA Games â Asian Cup</li>
</ul>
<p>Bình luáºn tiếng Viá»t là phần không thá» thiếu Äá» tráºn Äấu thêm hấp dẫn.</p>
<h3 class="wp-block-heading">Kho highlight và video bà n thắng cáºp nháºt nhanh</h3>
<p>Không phải lúc nà o fan cÅ©ng xem ÄÆ°á»£c tráºn Äấu trá»n vẹn từ Äầu tá»i cuá»i. Vì váºy Socolive luôn cáºp nháºt highlight nhanh nhất có thá» sau khi tráºn Äấu kết thúc. Fan chá» cần và i phút là Äã có thá» xem lại những tình huá»ng Äáng chú ý, bà n thắng, thẻ Äá», pha cứu thuaâ¦</p>
<p>Tá»c Äá» cáºp nháºt highlight cá»§a Socolive thưá»ng ÄÆ°á»£c ngưá»i xem khen vì:</p>
<ul class="wp-block-list">
<li>Nhanh, có ngay sau tráºn</li>
<li>Äầy Äá»§ các pha Äáng chú ý</li>
<li>Góc quay rõ rà ng, sắc nét</li>
<li>Có thá» xem lại bao nhiêu lần tùy thÃch</li>
</ul>
<p>Fan báºn rá»n cÅ©ng không sợ bá» lỡ khoảnh khắc quan trá»ng.</p>
<h3 class="wp-block-heading">TÃnh nÄng gợi ý tráºn Äấu hot â Æ°u tiên tráºn âÄáng xem nhấtâ</h3>
<p>Nhiá»u fan bóng Äá và o xem mà không biết tá»i nay có tráºn gì hay, Äá»i nà o Äá, giá» nà o Äá. Socolive dùng há» thá»ng gợi ý tráºn hot Äá» giải quyết vấn Äá» Äó. Há» thá»ng nà y dá»±a trên sá» ngưá»i quan tâm, lá»ch sá» các tráºn ná»i báºt và Äá» hấp dẫn cá»§a giải Äấu.</p>
<p>Nhá» tÃnh nÄng nà y:</p>
<ul class="wp-block-list">
<li>Fan luôn thấy tráºn hay nhất á» ngay Äầu trang</li>
<li>Không phải mất thá»i gian tìm</li>
<li>Không lo bá» lỡ các tráºn quan trá»ng cá»§a MU, Liverpool, Real, Barca, Viá»t Namâ¦</li>
</ul>
<p>Äây là má»t Äiá»m nhá» nhưng cá»±c kỳ tiá»n lợi, giúp trải nghiá»m xem bóng Äá trá» nên thông minh hÆ¡n.</p>
<h3 class="wp-block-heading">Chat trá»±c tiếp trong tráºn â không khà như Äang xem chung</h3>
<p>Xem bóng Äá mà không có ngưá»i bình luáºn cùng thì mất vui Äi rất nhiá»u. Vì váºy Socolive cung cấp tÃnh nÄng chat trá»±c tiếp ngay dưá»i tráºn Äấu, nÆ¡i fan có thá» chia sẻ suy nghÄ©, bà n luáºn pha bóng, hoặc cùng nhau âlên tinh thầnâ cho Äá»i mình yêu thÃch.</p>
<p>Chat trực tiếp tạo ra:</p>
<ul class="wp-block-list">
<li>Không khà sôi Äá»ng</li>
<li>Cảm giác cá»ng Äá»ng</li>
<li>Tương tác liên tục trong suá»t tráºn Äấu</li>
</ul>
<p>Nó giá»ng như bạn Äang xem bóng Äá á» quán cà phê vá»i hà ng chục ngưá»i bên cạnh â nhưng ngay trên mà n hình cá»§a chÃnh mình.</p>
<figure class="wp-block-image size-large"><img decoding="async" src="https://img.lightshot.app/0MgoxRsqQRumi3ge7p46Rg.jpg" alt=""/><figcaption class="wp-element-caption">Lý do Socolive TV luôn là lá»±a chá»n sá» 1 cá»§a ngưá»i hâm má»</figcaption></figure>
<h2 class="wp-block-heading">Hưá»ng dẫn xem trá»±c tiếp bóng Äá trên Socolive</h2>
<p>Socolive ÄÆ°á»£c tá»i ưu Äá» ai cÅ©ng có thá» xem bóng Äá dá»
dà ng, dù bạn là ngưá»i am hiá»u công nghá» hay chá» ÄÆ¡n giản muá»n má» tráºn Äấu mình yêu thÃch. Há» thá»ng ÄÆ°á»£c thiết kế theo nguyên tắc âthao tác cà ng Ãt â trải nghiá»m cà ng nhanhâ, giúp fan không tá»n thá»i gian loay hoay tìm tráºn. Chá» cần và i bưá»c ÄÆ¡n giản, bạn Äã có thá» xem bóng Äá vá»i chất lượng mượt mà trên bất kỳ thiết bá» nà o.</p>
<h3 class="wp-block-heading">Cách xem Socolive trên Äiá»n thoại (Android / iPhone)</h3>
<p>Äiá»n thoại là thiết bá» ÄÆ°á»£c fan bóng Äá Viá»t Nam sá» dụng nhiá»u nhất, từ xem tại nhà Äến xem khi Äang Äi ÄÆ°á»ng, khi á» quán cà phê hay tháºm chà Äang nghá» trưa. Socolive vì váºy ÄÆ°á»£c tá»i ưu rất tá»t cho mà n hình nhá».</p>
<p>Cách xem rất ÄÆ¡n giản:</p>
<ol class="wp-block-list">
<li>Truy cáºp và o website Socolive bằng trình duyá»t Äiá»n thoại.</li>
<li>Chá»n mục âTrá»±c tiếpâ hoặc âLá»ch thi Äấuâ Äá» xem danh sách tráºn trong ngà y.</li>
<li>Nhấn và o tráºn bạn muá»n xem.</li>
<li>Chá»n chất lượng 480p â 720p â 1080p tùy tá»c Äá» mạng.</li>
</ol>
<p>Socolive tá»± Äiá»u chá»nh giao diá»n cho phù hợp vá»i Äiá»n thoại, giúp các nút bấm rõ rà ng, video load nhanh và không bá» lá»i bá» cục như nhiá»u trang xem bóng Äá khác.</p>
<p>Má»t sỠưu Äiá»m khi xem bằng Äiá»n thoại:</p>
<ul class="wp-block-list">
<li>Load nhanh, Ãt lag</li>
<li>Tiết kiá»m bÄng thông, tá»i ưu cho mạng 4G/5G</li>
<li>Xem ÄÆ°á»£c á» má»i nÆ¡i</li>
<li>Không cần ứng dụng, không cần cà i Äặt</li>
</ul>
<h3 class="wp-block-heading">Cách xem Socolive trên PC hoặc Laptop</h3>
<p>Xem trên máy tÃnh vẫn luôn là lá»±a chá»n sá» má»t vá»i những ai muá»n thưá»ng thức tráºn Äấu trên mà n hình lá»n, bà n phÃm dá»
Äiá»u khiá»n và âm thanh rá»ng hÆ¡n. Phiên bản PC cá»§a Socolive ÄÆ°á»£c thiết kế mượt, gá»n và thân thiá»n.</p>
<p>Các bưá»c xem trên máy tÃnh:</p>
<ol class="wp-block-list">
<li>Má» trình duyá»t Chrome, Cá»c Cá»c hoặc Firefox.</li>
<li>Truy cáºp trang Socolive.</li>
<li>Tìm tráºn bạn muá»n xem trên trang chá»§ hoặc mục âTrá»±c tiếpâ.</li>
<li>Nhấn và o video và chá» và i giây là tráºn Äấu bắt Äầu.</li>
<li>Nếu muá»n xem full mà n hình, chá» cần nhấn biá»u tượng âFull Screenâ.</li>
</ol>
<p>Những ưu Äiá»m khi xem bằng PC:</p>
<ul class="wp-block-list">
<li>Khung hình rá»ng hÆ¡n, dá»
theo dõi từng pha bóng</li>
<li>Hình ảnh á»n Äá»nh, hiá»n thá» chÃnh xác mà u sắc</li>
<li>Trải nghiá»m âm thanh lá»n, rõ rà ng</li>
<li>Dá»
vừa xem vừa chat cùng bạn bè hoặc theo dõi tỷ lỠkèo Ỡtab khác</li>
</ul>
<h3 class="wp-block-heading">Cách xem Socolive trên Smart TV</h3>
<p>Nếu bạn muá»n xem bóng Äá theo cách âÄã nhấtâ, Smart TV chắc chắn là lá»±a chá»n hà ng Äầu. Những tráºn cầu Äá»nh cao như C1, Ngoại hạng Anh hay tráºn cá»§a Äá»i tuyá»n Viá»t Nam sẽ hấp dẫn hÆ¡n rất nhiá»u khi xem trên mà n hình lá»n.</p>
<p>Cách xem rất ÄÆ¡n giản:</p>
<ol class="wp-block-list">
<li>Má» trình duyá»t web có sẵn trên Smart TV (Chrome, Browser, Puffinâ¦).</li>
<li>Nháºp Äá»a chá» website Socolive.</li>
<li>Chá»n tráºn Äấu bạn muá»n xem.</li>
<li>Nhấn âFull Screenâ Äá» táºn hưá»ng hình ảnh lá»n nhất.</li>
</ol>
<p>Nếu TV không có trình duyá»t, bạn có thá» dùng tÃnh nÄng <strong>Cast / AirPlay</strong> Äá» chiếu từ Äiá»n thoại lên TV.<br>Ưu Äiá»m khi xem trên TV:</p>
<ul class="wp-block-list">
<li>Mà n hình lá»n, trải nghiá»m như Äang á» quán cà phê</li>
<li>Ãm thanh sá»ng Äá»ng hÆ¡n</li>
<li>Chất lượng hình ảnh rõ nét</li>
<li>Phù hợp xem cùng bạn bè hoặc gia Äình</li>
</ul>
<h3 class="wp-block-heading">Cách xá» lý khi bá» lag hoặc bá» cháºm</h3>
<p>Mặc dù Socolive luôn tá»i ưu Äá» hạn chế tá»i Äa lag, nhưng Äôi khi ÄÆ°á»ng truyá»n Internet yếu vẫn khiến fan gặp khó khÄn. Äừng lo, bạn có thá» xá» lý nhanh bằng và i bưá»c ÄÆ¡n giản.</p>
<p>Má»t sá» cách khắc phục hiá»u quả:</p>
<ul class="wp-block-list">
<li><strong>Chuyá»n chất lượng video xuá»ng 720p hoặc 480p</strong> nếu Äang dùng 4G/5G.</li>
<li><strong>Tắt các ứng dụng ná»n</strong> như TikTok, Youtube, Messenger Äá» tÄng tá»c mạng.</li>
<li><strong>Äá»i sang server dá»± phòng</strong> nếu server chÃnh Äang quá tải.</li>
<li><strong>Khá»i Äá»ng lại router wifi</strong> nếu mạng trong nhà cháºm.</li>
<li><strong>Chuyá»n sang kết ná»i khác</strong> (vd: Äá»i từ wifi sang 4G).</li>
</ul>
<p>Những mẹo nhá» nà y thưá»ng giúp tráºn Äấu trá» lại mượt chá» sau và i giây.</p>
<h3 class="wp-block-heading">Mẹo Äá» xem bóng Äá trên Socolive âÄã nhấtâ</h3>
<p>Äá» táºn hưá»ng tráºn Äấu trá»n vẹn, fan có thỠáp dụng má»t sá» mẹo nhá» nhưng rất hữu Ãch sau:</p>
<ul class="wp-block-list">
<li>Dùng trình duyá»t Chrome hoặc Cá»c Cá»c Äá» tá»i ưu tá»c Äá».</li>
<li>Nếu xem bằng Äiá»n thoại, Äặt máy á» chế Äá» ngang Äá» hình rá»ng hÆ¡n.</li>
<li>Báºt chế Äá» âKhông là m phiá»nâ Äá» tránh tin nhắn che mà n hình.</li>
<li>Dùng tai nghe khi xem má»t mình Äá» táºn hưá»ng âm thanh chân thá»±c.</li>
<li>Chá»n xem á» TV nếu là tráºn quan trá»ng như C1, El Clasico, AFF Cupâ¦</li>
</ul>
<p>Socolive luôn cá» gắng mang Äến trải nghiá»m tá»t nhất cho fan, và chá» cần và i mẹo nhá» như trên, bạn sẽ cảm thấy tráºn Äấu sá»ng Äá»ng hÆ¡n rất nhiá»u.</p>
<figure class="wp-block-image size-large"><img decoding="async" src="https://img.lightshot.app/NHbnpA12T9u3Bpj0tGGlsw.jpg" alt=""/><figcaption class="wp-element-caption">Socolive TV mang Äến má»i tráºn Äấu miá»
n phÃ</figcaption></figure>
<h2 class="wp-block-heading">Những chuyên mục hữu Ãch khác trên Socolive</h2>
<p>Socolive không chá» là nÆ¡i Äá» xem bóng Äá trá»±c tiếp. Äá»i vá»i ngưá»i hâm má», xem bóng Äá không chá» dừng lại á» 90 phút cá»§a tráºn Äấu, mà còn là hà nh trình theo dõi lá»ch thi Äấu, cáºp nháºt kết quả, xem bảng xếp hạng, Äá»c nháºn Äá»nh và nắm bắt tin tức má»i nhất má»i ngà y. Hiá»u rất rõ Äiá»u Äó, Socolive xây dá»±ng má»t há» thá»ng chuyên mục phong phú, giúp fan có Äầy Äá»§ thông tin trưá»c â trong â sau tráºn Äấu.</p>
<p>Dưá»i Äây là những chuyên mục cá»±c kỳ hữu Ãch mà fan Viá»t sá» dụng má»i ngà y trên Socolive.</p>
<h3 class="wp-block-heading">Lá»ch thi Äấu â cáºp nháºt realtime, rõ rà ng từng giá»</h3>
<p>Vá»i fan bóng Äá, viá»c quan trá»ng Äầu tiên má»i ngà y là biết <strong>tá»i nay có tráºn gì</strong>, <strong>Äá»i nà o Äá</strong>, <strong>Äá lúc mấy giá»</strong>, <strong>truyá»n hình trá»±c tiếp á» Äâu</strong>. Vì váºy, Socolive xây dá»±ng má»t chuyên mục <strong><a href="/lich-thi-dau">lá»ch thi Äấu</a></strong> cá»±c kỳ trá»±c quan.</p>
<p>Khi truy cáºp và o mục Lá»ch thi Äấu, bạn sẽ thấy:</p>
<ul class="wp-block-list">
<li>Lá»ch ÄÆ°á»£c cáºp nháºt theo giá» Viá»t Nam</li>
<li>Chia theo từng giải Äấu rõ rà ng</li>
<li>Hiá»n thá» trạng thái tráºn: Äã Äá â Äang Äá â sắp Äá</li>
<li>Có luôn link trá»±c tiếp Äá» bạn bấm xem ngay</li>
</ul>
<p>Fan thưá»ng nói rằng âvà o Socolive là biết tá»i nay có gì Äá» xemâ, và Äiá»u Äó Äúng â vì lá»ch thi Äấu luôn chạy realtime, liên tục cáºp nháºt từ há» thá»ng quá»c tế.</p>
<h3 class="wp-block-heading">Bảng xếp hạng â theo dõi thứ hạng từng Äá»i má»t cách dá»
dà ng</h3>
<p>Äi cùng lá»ch thi Äấu là <strong><a href="/bang-xep-hang">bảng xếp hạng</a></strong> â nÆ¡i fan kiá»m tra phong Äá», Äiá»m sá» và vá» trà cá»§a Äá»i mình yêu thÃch. Không quá phức tạp, không là m rá»i mắt, bảng xếp hạng trên Socolive ÄÆ°á»£c thiết kế ÄÆ¡n giản nhưng Äầy Äá»§ thông tin.</p>
<p>Fan có thỠxem:</p>
<ul class="wp-block-list">
<li>Sá» tráºn Äã chÆ¡i</li>
<li>Äiá»m sá» hiá»n tại</li>
<li>Hiá»u sá»</li>
<li>Sá» tráºn thắng â hòa â thua</li>
<li>Phong Äá» 5 tráºn gần nhất</li>
</ul>
<p>Dù bạn theo dõi Premier League, La Liga, Bundesliga hay Serie A, bảng xếp hạng luôn có sẵn vÃ ÄÆ°á»£c cáºp nháºt theo từng vòng Äấu. Chá» cần 1 cú nhấp chuá»t, bạn biết ngay Äá»i mình Äang Äứng á» Äâu.</p>
<h3 class="wp-block-heading">Kết quả bóng Äá â Äầy Äá»§, chÃnh xác, cáºp nháºt liên tục</h3>
<p>Khi bạn không xem ÄÆ°á»£c tráºn Äấu, thứ bạn cần nhất chÃnh là <strong><a href="/ket-qua-bong-da">kết quả bóng Äá</a></strong>. Socolive hiá»u Äiá»u Äó, nên chuyên mục Kết quả bóng Äá luôn cáºp nháºt liên tục, chÃnh xác sau má»i tráºn.</p>
<p>Äiá»m fan thÃch nhất á» mục Kết quả là :</p>
<ul class="wp-block-list">
<li>Có Äầy Äá»§ tá»· sá»</li>
<li>Có má»c thá»i gian ghi bà n</li>
<li>Có danh sách cầu thủ ghi bà n, kiến tạo</li>
<li>Có thẻ Äá», thẻ và ng và thá»ng kê cÆ¡ bản</li>
</ul>
<p>Äặc biá»t, toà n bá» kết quả cá»§a các giải lá»n như C1, Premier League, La Liga, Bundesliga, Ligue 1, Serie A, V-League⦠Äá»u ÄÆ°á»£c cáºp nháºt rất nhanh, gần như ngay sau tiếng còi mãn cuá»c.</p>
<h3 class="wp-block-heading">Nháºn Äá»nh bóng Äá â góc nhìn chuyên sâu trưá»c tráºn</h3>
<p>Äá»i vá»i nhiá»u fan bóng Äá, Äặc biá»t là những ngưá»i thÃch phân tÃch, thÃch Äá»c <strong><a href="/nhan-dinh">nháºn Äá»nh</a></strong> trưá»c khi xem, Socolive có chuyên mục <strong>Nháºn Äá»nh â Dá»± Äoán</strong> ÄÆ°á»£c viết theo cách dá»
hiá»u nhưng vẫn Äầy Äá»§ thông tin quan trá»ng.</p>
<p>Các ná»i dung thưá»ng xuất hiá»n trong bà i nháºn Äá»nh bao gá»m:</p>
<ul class="wp-block-list">
<li>Phong Äá» hiá»n tại cá»§a 2 Äá»i</li>
<li>Lá»ch sá» Äá»i Äầu</li>
<li>Tình hình lực lượng, chấn thương</li>
<li>Phong Äá» hà ng công â hà ng thá»§</li>
<li>Xu hưá»ng chiến thuáºt</li>
<li>Dá»± Äoán tá»· sá» và diá»
n biến tráºn Äấu</li>
</ul>
<p>Những bà i nháºn Äá»nh nà y giúp fan có cái nhìn tá»ng quan trưá»c khi xem tráºn Äấu, hoặc ÄÆ¡n giản là hiá»u hÆ¡n vá» bá»i cảnh tráºn cho tÄng phần hấp dẫn.</p>
<h3 class="wp-block-heading">Tin tức bóng Äá â nhanh, nóng, chá»n lá»c</h3>
<p>Bóng Äá thay Äá»i từng ngà y, từ chuyá»n nhượng, Äá»i hình, phát biá»u cá»§a HLV, Äến những tin tức bên lá» hấp dẫn. Socolive có chuyên mục Tin tức cáºp nháºt liên tục Äá» fan theo dõi tất cả diá»
n biến Äó mà không cần phải tìm á» nhiá»u nÆ¡i.</p>
<p>Mục Tin tức trên Socolive mang lại:</p>
<ul class="wp-block-list">
<li>Tin nhanh vá» các giải lá»n</li>
<li>Diá»
n biến nóng á» Premier League, C1, La Ligaâ¦</li>
<li>Các thông tin vá» Äá»i tuyá»n Viá»t Nam</li>
<li>Chuyá»n nhượng cầu thá»§</li>
<li>Phân tÃch chiến thuáºt, Äánh giá phong Äá» Äá»i bóng</li>
<li>Những câu chuyá»n thú vá» bên ngoà i sân cá»</li>
</ul>
<p>Tin tức ÄÆ°á»£c trình bà y ngắn gá»n, dá»
Äá»c và táºp trung và o những Äiá»u fan Viá»t quan tâm â không lan man và không dà i dòng.</p>
<figure class="wp-block-image size-large"><img decoding="async" src="https://img.lightshot.app/HxMkqjmwT5Op1XQ_NYivTQ.jpg" alt="Socolive TV sá» hữu dà n BLV bóng Äá chuyên nghiá»p, hà i hưá»c"/><figcaption class="wp-element-caption">Socolive TV sá» hữu dà n BLV bóng Äá chuyên nghiá»p, hà i hưá»c</figcaption></figure>
<h2 class="wp-block-heading"><strong>Câu há»i thưá»ng gặp (FAQ) khi xem bóng Äá trên Socolive</strong></h2>
<p>Mặc dù Socolive rất dá»
sá» dụng, nhưng vẫn có má»t sá» câu há»i mà fan bóng Äá thưá»ng thắc mắc khi truy cáºp lần Äầu. Dưá»i Äây là những câu há»i ÄÆ°á»£c há»i nhiá»u nhất â Äi kèm giải Äáp rõ rà ng, dá»
hiá»u Äá» bạn có thá» yên tâm sá» dụng ná»n tảng.</p>
<h3 class="wp-block-heading">Socolive có miá»
n phà hoà n toà n không?</h3>
<p>Có. Toà n bá» ná»i dung trên Socolive Äá»u <strong>miá»
n phà 100%</strong>. Bạn không cần ÄÄng ký, không cần nạp tiá»n, không bá» khóa tÃnh nÄng. Chá» cần truy cáºp website là có thá» xem bất kỳ tráºn Äấu nà o, từ Premier League, Champions League Äến AFF Cup hay các tráºn cá»§a Äá»i tuyá»n Viá»t Nam.</p>
<p>Socolive tin rằng bóng Äá là môn thá» thao dà nh cho tất cả, và viá»c xem bóng Äá không nên bá» rà o cản bá»i chi phÃ.</p>
<h3 class="wp-block-heading">Tại sao Äôi khi tôi và o link mà không xem ÄÆ°á»£c?</h3>
<p>Có má»t sá» thá»i Äiá»m lượng ngưá»i xem tÄng Äá»t biến â nhất là khi có tráºn hot. Mặc dù há» thá»ng server cá»§a Socolive rất mạnh, Äôi lúc fan có thá» gặp hiá»n tượng load cháºm hoặc không truy cáºp ÄÆ°á»£c ngay.</p>
<p>Cách xỠlý nhanh:</p>
<ul class="wp-block-list">
<li>Tải lại trang 1â2 lần</li>
<li>Chuyá»n sang server 2 hoặc server 3</li>
<li>Tắt bá»t ứng dụng chạy ná»n</li>
<li>Thá» má» bằng trình duyá»t khác (Chrome, Cá»c Cá»câ¦)</li>
</ul>
<p>Nếu vẫn chưa ÄÆ°á»£c, bạn có thá» chá» và i chục giây Äá» há» thá»ng giảm tải â sau Äó và o lại sẽ mượt.</p>
<h3 class="wp-block-heading">Socolive có bình luáºn tiếng Viá»t không?</h3>
<p>Có. Nhiá»u tráºn Äấu trên Socolive có bình luáºn viên tiếng Viá»t, Äặc biá»t là :</p>
<ul class="wp-block-list">
<li>Premier League</li>
<li>UEFA Champions League</li>
<li>La Liga, Serie A</li>
<li>Tráºn cá»§a ÄT Viá»t Nam</li>
<li>AFF Cup, Asian Cup, SEA Games</li>
</ul>
<p>Nếu tráºn bạn Äang xem không có tiếng Viá»t, thưá»ng sẽ có Ãt nhất 1 ÄÆ°á»ng tiếng Anh hoặc tiếng gá»c cá»§a giải.</p>
<h3 class="wp-block-heading">Socolive có ứng dụng app không?</h3>
<p>Hiá»n tại, Socolive <strong>không bắt buá»c sá» dụng app</strong> Äá» xem. Tất cả Äá»u ÄÆ°á»£c tá»i ưu trên <strong>trình duyá»t web</strong> Äá» fan xem nhanh â gá»n â nhẹ, không phải tải gì cả.</p>
<p>Tuy nhiên, trong tương lai gần, Socolive sẽ ra mắt ứng dụng chÃnh thức Äá» nâng cao trải nghiá»m trên Äiá»n thoại và TV.</p>
<h3 class="wp-block-heading">Tôi bỠlag khi xem, có phải do Socolive không?</h3>
<p>Trong phần lá»n trưá»ng hợp, lag Äến từ tá»c Äá» mạng cá»§a thiết bá» ngưá»i dùng. Tuy nhiên, Äá» Äảm bảo trải nghiá»m tá»t nhất, bạn có thá»:</p>
<ul class="wp-block-list">
<li>Chá»n chất lượng video phù hợp (720p hoặc 480p)</li>
<li>Äá»i sang server dá»± phòng</li>
<li>Chuyá»n mạng wifi hoặc dùng 4G/5G</li>
<li>Tắt VPN nếu Äang báºt</li>
</ul>
<p>Há» thá»ng cá»§a Socolive luôn ÄÆ°á»£c tá»i ưu Äá» hạn chế lag tá»i Äa, Äặc biá»t trong các tráºn Äông ngưá»i xem.</p>
<h3 class="wp-block-heading">Socolive có trá»±c tiếp Äầy Äá»§ tất cả giải không?</h3>
<p>Có. Từ các giải hà ng Äầu châu Ãu, giải quá»c ná»i, giải châu à Äến bóng Äá trẻ và bóng Äá nữ. Bạn là fan cá»§a giải nà o â Socolive Äá»u có link Äá» bạn xem.</p>
<p>Những giải ÄÆ°á»£c tìm kiếm nhiá»u nhất tại Socolive gá»m:</p>
<ul class="wp-block-list">
<li>Premier League</li>
<li>UEFA Champions League</li>
<li>La Liga, Serie A, Bundesliga</li>
<li>Ligue 1</li>
<li>V-League</li>
<li>ÄT Viá»t Nam á» tất cả giải Äấu</li>
<li>Euro, World Cup</li>
</ul>
<figure class="wp-block-image size-large"><img decoding="async" src="https://img.lightshot.app/L9BRCmKLSFKlexou-JQMPA.jpg" alt="Socolive TV sá» hữu nhiá»u chuyên mục Äặc biá»t, chất lượng"/><figcaption class="wp-element-caption">Socolive TV sá» hữu nhiá»u chuyên mục Äặc biá»t, chất lượng</figcaption></figure>
<h2 class="wp-block-heading">Kết luáºn</h2>
<p>Socolive không chá» ÄÆ¡n thuần là má»t ná»n tảng xem bóng Äá. Äó là má»t âsân váºn Äá»ng trá»±c tuyếnâ, nÆ¡i hà ng triá»u fan bóng Äá Viá»t Nam gặp nhau má»i ngà y Äá» theo dõi những tráºn Äấu Äá»nh cao. Chúng tôi xây dá»±ng Socolive dá»±a trên má»t mục tiêu rất rõ: <strong>mang Äến cho ngưá»i hâm má» má»t trải nghiá»m xem bóng Äá mượt â nét â nhanh â miá»
n phà và không bá» là m phiá»n bá»i quảng cáo</strong>.</p>
<p>á» Socolive, má»i tráºn Äấu không chá» là 90 phút â mà là từng khoảnh khắc cảm xúc ÄÆ°á»£c truyá»n tải chân thá»±c: từ cú sút xa cháy lưá»i, pha cứu thua xuất thần, Äến tiếng reo hò Äầy cảm xúc cá»§a fan Viá»t. Chúng tôi muá»n bạn cảm nháºn bóng Äá theo cách trá»n vẹn nhất, dù bạn Äang á» nhà , á» quán cà phê hay Äang di chuyá»n ngoà i ÄÆ°á»ng.</p>
<p>Socolive sẽ tiếp tục phát triá»n mạnh hÆ¡n, á»n Äá»nh hÆ¡n và Äầy Äá»§ hÆ¡n Äá» trá» thà nh lá»±a chá»n sá» má»t cá»§a cá»ng Äá»ng fan bóng Äá Viá»t Nam. Và dù bạn là fan MU, Liverpool, Real, Barca hay là ngưá»i yêu Äá»i tuyá»n Viá»t Nam â Socolive luôn sẵn sà ng Äá»ng hà nh cùng bạn trong má»i tráºn Äấu.</p>
</div>
</div>
</div>
</div>
</div>
</section>
</main>
<!-- Footer -->
<!-- <footer class="footer">
<div class="container">
<div class="footer__content">
<p style="font-size: 14px">
Bản quyá»n bá»i
<a href="#"><span class="text-primary">CakhiaTV</span></a> - All
rights reserved
</p>
</div>
</div>
</footer> -->
<footer style="background-color: #111; color: #fff; text-align: center; padding: 30px 15px;">
<div style="max-width: 1280px; margin: 0 auto">
<div class="footer-logo">
<img src="/wp-content/uploads/2025/07/logo-socolive.png" alt="Socolive TV" style="vertical-align: middle; height: 40px;">
</div>
<p class="footer-descript">
<a href="/"><strong style="color: #f7c700;">Socolive</strong></a> phát bóng Äá trá»±c tuyến miá»
n phà full HD tá»c Äá» cao. Xem trá»±c tiếp bóng Äá Socolive TV hôm nay tại giải Äấu Ngoại Hạng Anh, Euro,... cùng Äá»i ngÅ© BLV chuyên nghiá»p, bao gá»m BLV Tap, BLV No Name, BLV Leo,...
</p>
<div id="0fBdTp" style="text-align:center"></div>
<nav style="margin: 20px 0;">
<a href="/gioi-thieu" class="footer-nav-text" style="color: #f7c700; margin: 0 10px; font-weight: bold;">Vá» CHÃNG TÃI</a>
<a href="/chinh-sach-bao-mat"class="footer-nav-text" style="color: #f7c700; margin: 0 10px; font-weight: bold;">CHÃNH SÃCH</a>
<a href="/dieu-khoan-su-dung"class="footer-nav-text" style="color: #f7c700; margin: 0 10px; font-weight: bold;">ÄIá»U KHOẢN</a>
<a href="/lien-he"class="footer-nav-text" style="color: #f7c700; margin: 0 10px; font-weight: bold;">LIÃN Há»</a>
<a href="/ban-quyen"class="footer-nav-text" style="color: #f7c700; margin: 0 10px; font-weight: bold;">BẢN QUYá»N</a>
<a href="/mien-tru-trach-nhiem"class="footer-nav-text" style="color: #f7c700; margin: 0 10px; font-weight: bold;">MIá»N TRỪ TRÃCH NHIá»M</a>
<a href="#"class="footer-nav-text" style="color: #f7c700; margin: 0 10px; font-weight: bold;">TUYá»N DỤNG</a>
<a href="#"class="footer-nav-text" style="color: #f7c700; margin: 0 10px; font-weight: bold;">SITEMAP</a>
</nav>
<p class="footer-text">Doanh nghiá»p: Socolive TV</p>
<p class="footer-text">Chá»u trách nhiá»m ná»i dung: <a href="/author/leminhhieu"><span style="color: #f7c700;">Lê Minh Hiếu</span></a></p>
<p class="footer-text">Sá» Äiá»n thoại: 09589864211</p>
<p class="footer-text">Email: [email protected]</p>
<p class="footer-text">Äá»a chá»: <a href="https://maps.app.goo.gl/UL4tqs1Ufy2W57b89" target="_blank" rel="nofollow"><span style="color: #f7c700;">106 Ä. sá» 14, Bình Hưng Hoà A, Bình Tân, Thà nh phá» Há» Chà Minh, Viá»t Nam</span></a></p>
<p class="footer-text">Hoạt Äá»ng: 00:00â23:59 (hằng ngà y)</p>
<p style="margin-top: 15px;">Hashtag: #socolive #socolivetv #tructiepbongda #xembongdatructiep #xembongdatructuyen</p>
<div style="margin-top: 15px;">
<a href="#"><img src="https://cdn.onlive.io/wp-content/wp-content/uploads/2025/06/icon-facebook.webp" alt="Facebook" style="width: 24px; margin: 0 5px;"></a>
<a href="#" rel="nofollow" target="_blank"><img src="https://cdn.onlive.io/wp-content/wp-content/uploads/2025/06/4.png" alt="Twitter" style="width: 24px; margin: 0 5px;"></a>
<a href="#" rel="nofollow" target="_blank"><img src="https://cdn.onlive.io/wp-content/wp-content/uploads/2025/06/pngimg.com-twitch_PNG28.png" alt="Twitch" style="width: 24px; margin: 0 5px;"></a>
<a href="#" rel="nofollow" target="_blank"><img src="https://cdn.onlive.io/wp-content/wp-content/uploads/2025/06/Youtube_logo.png" alt="Youtube" style="width: 24px; margin: 0 5px;"></a>
<a href="#" rel="nofollow" target="_blank"><img src="https://cdn.onlive.io/wp-content/wp-content/uploads/2025/06/reddit-logo-1.png" alt="Reddit" style="width: 24px; margin: 0 5px;"></a>
<a href="#" rel="nofollow" target="_blank"><img src="https://cdn.onlive.io/wp-content/wp-content/uploads/2025/06/pngimg.com-pinterest_PNG63.png" alt="Pinterest" style="width: 24px; margin: 0 5px;"></a>
<a href="#" rel="nofollow" target="_blank"><img src="https://cdn.onlive.io/wp-content/wp-content/uploads/2025/06/free-tumblr-logo-icon-2434-thumb.png" alt="Tumblr" style="width: 24px; margin: 0 5px;"></a>
</div>
<div style="margin: 1rem 0"><a href="//www.dmca.com/Protection/Status.aspx?ID=b03a051e-fc2a-4ffb-ab78-7b2110c8201b" title="DMCA.com Protection Status" class="dmca-badge"> <img src ="https://images.dmca.com/Badges/_dmca_premi_badge_4.png?ID=b03a051e-fc2a-4ffb-ab78-7b2110c8201b" alt="DMCA.com Protection Status" /></a> <script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js"> </script></div>
</div>
</footer>
<button onclick="scrollToTop()" id="scrollTopBtn" title="Go to top">
<svg viewBox="0 0 24 24">
<path
d="M13,20H11V8L5.5,13.5L4.08,12.08L12,4.16L19.92,12.08L18.5,13.5L13,8V20Z"
></path>
</svg>
</button>
<script src="https://cdn.onlive.io/wp-content/themes/cakhiatv/assets/js/main.js"></script>
</body>
<script>
if ('serviceWorker' in navigator) {
window.addEventListener('load', function () {
navigator.serviceWorker.register('/sw.js')
.then(function (reg) { /*console.log('[SW] â
Registered, scope:', reg.scope);*/ })
.catch(function (err) { /*console.warn('[SW] Registration failed:', err);*/ });
});
}
</script>
<script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"\/*"},{"not":{"href_matches":["\/wp-*.php","\/wp-admin\/*","\/wp-content\/uploads\/*","\/wp-content\/*","\/wp-content\/plugins\/*","\/wp-content\/themes\/cakhiatv\/*","\/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script src="https://onlive.io/js/websocket-client.js"></script>
<style>
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
.loading-spinner {
animation: spin 1s linear infinite;
}
#match-list {
position: relative;
}
#match-list>div[style*="display: flex"] {
width: 100% !important;
max-width: 100% !important;
}
</style>
<script>
// âââ LocalStorage Cache (giá»ng colatv40.live) ââââââââââââââââ
const LS_MATCHES_KEY = 'colatv_matches_v1';
const LS_MATCHES_TTL = 10 * 60 * 1000; // 10 phút
function loadMatchesFromCache() {
try {
const raw = localStorage.getItem(LS_MATCHES_KEY);
if (!raw) return null;
const { data, ts } = JSON.parse(raw);
if (!data || !Array.isArray(data) || data.length === 0) return null;
if (Date.now() - ts > LS_MATCHES_TTL) return null;
return data;
} catch { return null; }
}
function saveMatchesToCache(matches) {
try {
if (!matches || matches.length === 0) return;
localStorage.setItem(LS_MATCHES_KEY, JSON.stringify({ data: matches, ts: Date.now() }));
} catch { /* localStorage full, bá» qua */ }
}
// âââââââââââââââââââââââââââââââââââââââââââââââââââââââââââââ
// Tá»i ưu: Cache DOM selectors Äá» tránh query lại
const filterCountCache = {
countAllType: null,
countAll: null,
countElements: {},
noBlvElement: null,
liveElement: null,
hotElement: null,
todayElement: null,
tomorrowElement: null,
initialized: false
};
function initFilterCountCache() {
if (filterCountCache.initialized) return;
filterCountCache.countAllType = document.getElementById('count-all-type');
filterCountCache.countAll = document.getElementById('count-all');
filterCountCache.noBlvElement = document.getElementById('noblv-live');
filterCountCache.liveElement = document.getElementById('count-live');
filterCountCache.hotElement = document.getElementById('count-hot');
filterCountCache.todayElement = document.getElementById('count-today');
filterCountCache.tomorrowElement = document.getElementById('count-tomorrow');
['football', 'basketball', 'tennis', 'volleyball'].forEach(sport => {
filterCountCache.countElements[sport] = document.getElementById(`count-${sport}`);
});
filterCountCache.initialized = true;
}
// Hà m Äếm sá» lượng tráºn Äấu theo bá» lá»c - Tá»i ưu vá»i cached selectors
function updateFilterCounts(visibleMatchCards, allMatchCards) {
initFilterCountCache();
if (filterCountCache.countAllType) {
filterCountCache.countAllType.textContent = allMatchCards.length;
}
if (filterCountCache.countAll) {
filterCountCache.countAll.textContent = visibleMatchCards.length;
}
['football', 'basketball', 'tennis', 'volleyball'].forEach(sport => {
const countElement = filterCountCache.countElements[sport];
if (countElement) {
const count = Array.from(allMatchCards).filter(card => card.dataset.sport === sport).length;
countElement.textContent = count;
}
});
if (filterCountCache.noBlvElement) {
const noBlvCount = Array.from(visibleMatchCards).filter(card => card.dataset.blv === 'false').length;
filterCountCache.noBlvElement.textContent = noBlvCount;
}
if (filterCountCache.liveElement) {
const noBlvCount = Array.from(visibleMatchCards).filter(card => card.dataset.blv === 'false').length;
const liveCount = Array.from(visibleMatchCards).filter(card => card.dataset.live === 'true').length - noBlvCount;
filterCountCache.liveElement.textContent = liveCount;
}
if (filterCountCache.hotElement) {
const noBlvCount = Array.from(visibleMatchCards).filter(card => card.dataset.blv === 'false').length;
const hotCount = Array.from(visibleMatchCards).filter(card => card.dataset.hot === 'true').length - noBlvCount;
filterCountCache.hotElement.textContent = hotCount;
}
const today = new Date().toISOString().split('T')[0];
const tomorrow = new Date(Date.now() + 86400000).toISOString().split('T')[0];
if (filterCountCache.todayElement) {
const todayCount = Array.from(visibleMatchCards).filter(card => card.dataset.date === today).length;
filterCountCache.todayElement.textContent = todayCount;
}
if (filterCountCache.tomorrowElement) {
const tomorrowCount = Array.from(visibleMatchCards).filter(card => card.dataset.date === tomorrow).length;
filterCountCache.tomorrowElement.textContent = tomorrowCount;
}
}
// Hà m chuyá»n Äá»i ID môn thá» thao thà nh tên
function sportName(sportId) {
const sports = {
1: 'football',
2: 'basketball',
};
return sports[sportId] || 'unknown';
}
// Hà m xỠlý timestamp
function fixtime(timestamp) {
return isNaN(timestamp) ? new Date(timestamp).getTime() : timestamp;
}
// Hà m Äá»nh dạng ngà y giá»
function formatDate(timestamp, format) {
const date = new Date(timestamp * 1000);
const day = String(date.getDate()).padStart(2, '0');
const month = String(date.getMonth() + 1).padStart(2, '0');
const year = date.getFullYear();
const hours = String(date.getHours()).padStart(2, '0');
const minutes = String(date.getMinutes()).padStart(2, '0');
if (format === 'd/m') return `${day}/${month}`;
if (format === 'Y-m-d') return `${year}-${month}-${day}`;
if (format === 'H:i') return `${hours}:${minutes}`;
return date;
}
// Hà m lấy domain API random Äá» tránh Cloudflare rate limit
function getApiDomain() {
const domains = ['api.gvapi.cc'];
// Random chá»n má»t domain
const index = Math.floor(Math.random() * domains.length);
const selected = domains[index];
return 'https://' + selected;
}
// Hà m lấy domain API random cho video-home (pinned-home)
function getVideoHomeApiDomain() {
const domains = ['video-home.gvapi.cc'];
// Random chá»n má»t domain
const index = Math.floor(Math.random() * domains.length);
const selected = domains[index];
return 'https://' + selected;
}
// Hà m hiá»n thá» loading
function showLoading() {
const matchList = getMatchList();
if (!matchList) return;
// Hiá»n thá» trá»±c tiếp trong match-list, thay thế toà n bá» ná»i dung
matchList.innerHTML = `
<div style="text-align: center; padding: 60px 20px; width: 100%; min-height: 400px; display: flex; flex-direction: column; justify-content: center; align-items: center; box-sizing: border-box;">
<div class="loading-spinner" style="display: block; width: 50px; height: 50px; border: 4px solid #f3f3f3; border-top: 4px solid #3498db; border-radius: 50%; animation: spin 1s linear infinite; margin: 0 auto;"></div>
<p style="margin-top: 20px; color: #666; font-size: 16px; text-align: center; width: 100%;">Äang tải dữ liá»u...</p>
</div>
`;
}
// Hà m hiá»n thá» lá»i vá»i các button Äá» xuất
function showErrorWithSuggestions() {
const matchList = getMatchList();
if (!matchList) return;
const suggestionLinks = [
{ name: 'iotditr.com', url: 'https://iotditr.com' },
{ name: 'cntsiend.com', url: 'https://cntsiend.com' },
{ name: 'euwygrb.com', url: 'https://euwygrb.com' },
{ name: 'ppoemlg.com', url: 'https://ppoemlg.com' },
{ name: 'eyhtldu.com', url: 'https://eyhtldu.com' }
];
const buttonsHtml = suggestionLinks.map(link =>
`<a href="${link.url}" target="_blank" rel="nofollow" style="display: inline-block; margin: 8px; padding: 12px 24px; background-color: #3498db; color: white; text-decoration: none; border-radius: 5px; font-weight: bold; transition: background-color 0.3s; cursor: pointer;">${link.name}</a>`
).join('');
// Hiá»n thá» trá»±c tiếp trong match-list, thay thế toà n bá» ná»i dung
matchList.innerHTML = `
<div style="text-align: center; padding: 60px 20px; width: 100%; min-height: 400px; display: flex; flex-direction: column; justify-content: center; align-items: center;">
<div style="margin-bottom: 20px;">
<svg width="64" height="64" viewBox="0 0 24 24" fill="none" stroke="#e74c3c" stroke-width="2" style="margin: 0 auto; display: block;">
<circle cx="12" cy="12" r="10"></circle>
<line x1="12" y1="8" x2="12" y2="12"></line>
<line x1="12" y1="16" x2="12.01" y2="16"></line>
</svg>
</div>
<h3 style="color: #e74c3c; margin-bottom: 15px; font-size: 24px; font-weight: bold;">Há» thá»ng gặp sá»± cá»</h3>
<p style="color: #666; margin-bottom: 30px; font-size: 16px; max-width: 500px;">Bạn có thá» chá»n kênh khác:</p>
<div style="display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; width: 100%; max-width: 800px;">
${buttonsHtml}
</div>
</div>
`;
}
// Hà m fetch vá»i timeout
function fetchWithTimeout(url, timeout = 10000) {
return Promise.race([
fetch(url),
new Promise((_, reject) =>
setTimeout(() => reject(new Error('Request timeout')), timeout)
)
]);
}
// Hà m lấy dữ liá»u tráºn Äấu từ API và render
async function refreshMatches() {
const matchList = getMatchList();
if (!matchList) {
console.error('Không tìm thấy phần tỠmatch-list');
return;
}
// Chá» hiá»n thá» loading nếu chưa có data từ cache
if (!matchList.querySelector('.match-card')) {
showLoading();
}
try {
const apiBase = getApiDomain();
const response = await fetchWithTimeout(apiBase + '/api/matches?t=' + new Date().getTime(), 10000);
if (!response.ok) {
throw new Error('Lá»i khi lấy dữ liá»u API: ' + response.status);
}
const datas = await response.json();
if (!datas.data || typeof datas.data !== 'object') {
throw new Error('Cấu trúc dữ liá»u API không hợp lá»');
}
const newMatches = [];
const matchesByGroup = {}; // Nhóm matches theo competitionName
for (const [key, data] of Object.entries(datas.data)) {
// Bảo vỠnếu anchorAppointmentVoList không phải array
const anchorList = Array.isArray(data.anchorAppointmentVoList) ? data.anchorAppointmentVoList : [];
//if (!anchorList.length) continue;
// Bá» các tráºn "Live streaming"
if (anchorList[0]?.nickName === 'Live streaming') continue;
// Bảo vá» tá» sá»
const homeScoreArr = Array.isArray(data.homeScore) ? data.homeScore : [];
const awayScoreArr = Array.isArray(data.awayScore) ? data.awayScore : [];
const homeScore = homeScoreArr.length ? homeScoreArr[0] : 0;
const awayScore = awayScoreArr.length ? awayScoreArr[0] : 0;
// Nếu match có house_id khác null, thêm ?houseId=... và o slug
let slug = key;
if (data.house_id && data.house_id !== null) {
slug = `${key}?houseId=${data.house_id}`;
}
const competitionName = data.competitionName || 'NBA';
const matchData = {
id: 2,
slug: slug,
sport: sportName(data.sportId),
live: data.matchStatus === 2,
hot: true,
blv: anchorList[0]?.nickName !== 'Live streaming',
date: formatDate(fixtime(data.matchTime), 'd/m'),
datesearch: formatDate(fixtime(data.matchTime), 'Y-m-d'),
hour: formatDate(fixtime(data.matchTime), 'H:i'),
competitionName: competitionName,
teams: [
data.homeTeamName || 'Team C',
data.awayTeamName || 'Team D'
],
score: `${homeScore}:${awayScore}`,
videoUrl: data.videoUrl || 'https://live2.example.com',
animationUrl: data.animationUrl || 'https://animation.example.com',
data: data
};
newMatches.push(matchData);
// Nhóm matches theo competitionName
if (!matchesByGroup[competitionName]) {
matchesByGroup[competitionName] = [];
}
matchesByGroup[competitionName].push(matchData);
}
// Gá»i hà m render vá»i danh sách tráºn Äấu má»i
renderAllMatches(newMatches);
filterMatches('parent', newMatches);
saveMatchesToCache(newMatches); //
} catch (error) {
console.error('Lá»i khi là m má»i tráºn Äấu:', error);
// Äã loại bá» showErrorWithSuggestions() Äá» không ghi Äè giao diá»n SSR nếu API thất bại á» lần gá»i Äầu tiên.
// Há» thá»ng sẽ âm thầm giữ nguyên giao diá»n SSR và Äợi Socket cáºp nháºt.
}
}
function createMatchCard(match) {
// Bảo vá» dữ liá»u, tránh crash nếu cache cÅ© thiếu data
if (!match || !match.data) return '';
// Bảo vỠanchorAppointmentVoList
const anchorList = Array.isArray(match.data.anchorAppointmentVoList)
? match.data.anchorAppointmentVoList
: [];
// XỠlý slug an toà n
const slugStr = match.slug || '';
const baseSlug = slugStr.includes('?') ? slugStr.split('?')[0] : slugStr;
const nicknames = anchorList.map(item => {
const itemHouseId = item.houseId || '';
if (itemHouseId !== '') {
const separator = baseSlug.includes('?') ? '&' : '?';
return `<a href="https://onlive.io/truc-tiep/${baseSlug}${separator}houseId=${itemHouseId}" rel="nofollow">${item.nickName}</a>`;
} else {
return `<a href="https://onlive.io/truc-tiep/${slugStr}" rel="nofollow">${item.nickName}</a>`;
}
});
const nicknameString = nicknames.join(' | ');
// Bảo vá» tá» sá» (dùng lại match.score nếu muá»n)
const homeScoreArr = Array.isArray(match.data.homeScore) ? match.data.homeScore : [];
const awayScoreArr = Array.isArray(match.data.awayScore) ? match.data.awayScore : [];
const homeScore = homeScoreArr.length ? homeScoreArr[0] : 0;
const awayScore = awayScoreArr.length ? awayScoreArr[0] : 0;
return `
<div class="match-card" data-id="${match.id}" data-sport="${match.sport}" data-live="${match.live}" data-blv="${match.blv}" data-hot="${match.hot}" data-date="${match.datesearch}">
<div class="match-card__body">
<a href="https://onlive.io/truc-tiep/${match.slug}" class="link-match" rel="nofollow"></a>
<div class="match-card__header">
<div class="match-card__league">
<span>${match.data.competitionName}</span>
</div>
<div class="match-card__status">
${match.data.matchStatus == 1
? '<div class="match-card__status text-warning text-uppercase">CHƯA BẮT ÄẦU</div>'
: match.data.matchStatus == 2
? '<div class="match-card__status streaming">ÄANG TRá»°C TIẾP</div>'
: match.data.matchStatus == 3
? '<span class="btn btn--warning text-uppercase">Tạm ngừng phát sóng</span>'
: match.data.matchStatus == 4
? '<span class="btn btn--danger text-uppercase">Cấm phát sóng vÄ©nh viá»
n</span>'
: '<span class="btn btn--secondary text-uppercase">Không xác Äá»nh</span>'
}
</div>
<div class="match-card__time"><span class="match-time">${match.hour} - ${match.date}</span></div>
</div>
<div class="match-card__teams">
<div class="team home">
<img src="${match.data.homeTeamLogo}" alt="${match.data.homeTeamName}" class="team__logo">
<span class="team__name">${match.data.homeTeamName}</span>
</div>
<div class="match-card__score">${homeScore} - ${awayScore}</div>
<div class="team">
<img src="${match.data.awayTeamLogo}" alt="${match.data.awayTeamName}" class="team__logo">
<span class="team__name">${match.data.awayTeamName}</span>
</div>
</div>
<div class="match-card__info">
<div class="match-card__stats">
<div class="match-card__stats-content">
${nicknameString}
</div>
</div>
<div class="match-card__odds">
<a href="https://onlive.io/truc-tiep/${match.slug}" class="btn btn--primary" rel="nofollow">
<span>XEM NGAY</span>
</a>
</div>
</div>
</div>
</div>
`;
}
// Khá»i tạo bá» lá»c
let currentFilters = {
sport: 'all',
live: false,
blv: false,
hot: false,
commentator: false,
date: 'all',
league: 'all'
};
// Tá»i ưu: Preload video metadata Äá» tÄng tá»c Äá» load khi click và o match
const videoPreloadCache = new Map(); // Cache preloaded videos
function preloadVideoMetadata(videoUrl) {
if (!videoUrl || videoPreloadCache.has(videoUrl)) {
return; // Äã preload rá»i
}
// Mark as preloading
videoPreloadCache.set(videoUrl, { status: 'loading', timestamp: Date.now() });
// Preload bằng cách tạo video element và load metadata
const video = document.createElement('video');
video.preload = 'metadata'; // ChỠload metadata, không load toà n bỠvideo
video.muted = true;
video.playsInline = true;
video.style.display = 'none';
video.addEventListener('loadedmetadata', function () {
videoPreloadCache.set(videoUrl, { status: 'loaded', timestamp: Date.now() });
document.body.removeChild(video);
});
video.addEventListener('error', function () {
videoPreloadCache.set(videoUrl, { status: 'error', timestamp: Date.now() });
if (document.body.contains(video)) {
document.body.removeChild(video);
}
});
video.src = videoUrl;
document.body.appendChild(video);
// Cleanup cache sau 5 phút
setTimeout(() => {
videoPreloadCache.delete(videoUrl);
}, 5 * 60 * 1000);
}
// Tá»i ưu: Cache match-list selector
let matchListCache = null;
function getMatchList() {
if (!matchListCache) {
matchListCache = document.getElementById('match-list');
}
return matchListCache;
}
// Hà m render toà n bá» tráºn Äấu
function renderAllMatches(matches) {
const matchList = getMatchList();
if (!matchList) {
console.error('Không tìm thấy phần tỠmatch-list');
return;
}
// Xóa danh sách cũ
matchList.innerHTML = '';
// Render danh sách má»i
matches.forEach(match => {
if (!match || !match.data) return; // Bá» qua match lá»i
const cardHTML = createMatchCard(match);
if (!cardHTML) return; // Bá» qua nếu không tạo ÄÆ°á»£c thẻ
const tempDiv = document.createElement('div');
tempDiv.innerHTML = cardHTML.trim();
const cardElement = tempDiv.firstChild;
if (!cardElement) return;
// Ẩn các tráºn không có bình luáºn viên
/*if (cardElement.getAttribute('data-blv') === 'false') {
cardElement.classList.add('d-none');
}*/
// Tá»i ưu: Preload video metadata khi hover và o match card
if (match.data && match.data.videoUrl) {
let preloadTimeout = null;
cardElement.addEventListener('mouseenter', function () {
// Debounce: chá» preload sau 500ms hover
preloadTimeout = setTimeout(() => {
preloadVideoMetadata(match.data.videoUrl);
}, 500);
});
cardElement.addEventListener('mouseleave', function () {
if (preloadTimeout) {
clearTimeout(preloadTimeout);
preloadTimeout = null;
}
});
}
matchList.appendChild(cardElement);
});
// Cáºp nháºt bá» Äếm
const visibleMatches = document.querySelectorAll('.match-card:not(.d-none)');
updateFilterCounts(visibleMatches, document.querySelectorAll('.match-card'));
}
// Hà m lá»c tráºn Äấu
function filterMatches(type, matches) {
const allCards = document.querySelectorAll('.match-card');
// Lá»c theo môn thá» thao
const sportFiltered = Array.from(allCards).filter(card => {
const sport = card.dataset.sport;
return currentFilters.sport === 'all' || sport === currentFilters.sport;
});
let finalFiltered = sportFiltered;
// Ãp dụng các bá» lá»c khác
if (currentFilters.live) {
finalFiltered = finalFiltered.filter(card => card.dataset.live === 'true' && card.dataset.blv === 'true');
} else if (currentFilters.blv) {
finalFiltered = finalFiltered.filter(card => card.dataset.blv === 'false');
} else if (currentFilters.hot) {
finalFiltered = finalFiltered.filter(card => card.dataset.hot === 'true' && card.dataset.blv === 'true');
} else if (currentFilters.date !== 'all') {
finalFiltered = finalFiltered.filter(card => card.dataset.date === currentFilters.date && card.dataset.blv === 'true');
}
// Hiá»n thá»/ẩn các thẻ
allCards.forEach(card => {
card.classList.toggle('d-none', !finalFiltered.includes(card));
});
// Cáºp nháºt bá» Äếm
if (type === 'parent') {
updateFilterCounts(sportFiltered, allCards);
} else {
updateFilterCounts(finalFiltered, allCards);
}
}
// Gắn sá»± kiá»n cho nút lá»c môn thá» thao
document.querySelectorAll('.sports-filter__button[data-sport]').forEach(button => {
button.addEventListener('click', () => {
currentFilters.sport = button.getAttribute('data-sport');
filterMatches('parent');
});
});
// Gắn sá»± kiá»n cho nút lá»c con
document.querySelectorAll('.sports-filter__button_child').forEach(btn => {
btn.addEventListener('click', function () {
const filterType = this.getAttribute('data-filter');
const value = this.getAttribute('data-value');
if (filterType === 'date') {
currentFilters.date = value;
currentFilters.live = false;
currentFilters.hot = false;
currentFilters.blv = false;
} else if (filterType === 'live') {
currentFilters.live = true;
currentFilters.date = 'all';
currentFilters.hot = false;
currentFilters.blv = false;
} else if (filterType === 'hot') {
currentFilters.hot = true;
currentFilters.date = 'all';
currentFilters.live = false;
currentFilters.blv = false;
} else if (filterType === 'child_all') {
currentFilters.live = false;
currentFilters.hot = false;
currentFilters.blv = false;
currentFilters.date = 'all';
}
document.querySelectorAll('.sports-filter__button_child').forEach(b => b.classList.remove('active'));
this.classList.add('active');
filterMatches('child');
});
});
// Gắn sá»± kiá»n cho toggle livescore
const liveToggle = document.getElementById('livescoreToggle');
if (liveToggle) {
liveToggle.addEventListener('change', () => {
currentFilters.live = liveToggle.checked;
filterMatches('parent');
});
}
// ===== WEBSOCKET INTEGRATION =====
let wsClient = null;
let matchesWebSocketConnected = false;
let fallbackPollingInterval = null;
// Function Äá» transform WebSocket data format
function transformWebSocketMatches(data) {
const newMatches = [];
for (const [key, matchData] of Object.entries(data)) {
// Logic tương tự như trong refreshMatches()
const anchorList = Array.isArray(matchData.anchorAppointmentVoList)
? matchData.anchorAppointmentVoList
: [];
if (anchorList[0]?.nickName === 'Live streaming') continue;
const homeScoreArr = Array.isArray(matchData.homeScore) ? matchData.homeScore : [];
const awayScoreArr = Array.isArray(matchData.awayScore) ? matchData.awayScore : [];
const homeScore = homeScoreArr.length ? homeScoreArr[0] : 0;
const awayScore = awayScoreArr.length ? awayScoreArr[0] : 0;
let slug = key;
if (matchData.house_id && matchData.house_id !== null) {
slug = `${key}?houseId=${matchData.house_id}`;
}
const competitionName = matchData.competitionName || 'NBA';
const matchDataObj = {
id: 2,
slug: slug,
sport: sportName(matchData.sportId),
live: matchData.matchStatus === 2,
hot: true,
blv: anchorList[0]?.nickName !== 'Live streaming',
date: formatDate(fixtime(matchData.matchTime), 'd/m'),
datesearch: formatDate(fixtime(matchData.matchTime), 'Y-m-d'),
hour: formatDate(fixtime(matchData.matchTime), 'H:i'),
competitionName: competitionName,
teams: [
matchData.homeTeamName || 'Team C',
matchData.awayTeamName || 'Team D'
],
score: `${homeScore}:${awayScore}`,
videoUrl: matchData.videoUrl || 'https://live2.example.com',
animationUrl: matchData.animationUrl || 'https://animation.example.com',
data: matchData
};
newMatches.push(matchDataObj);
}
return newMatches;
}
// Function Äá» init WebSocket
function initMatchesWebSocket() {
// WebSocket URL - có thỠconfig từ PHP hoặc hardcode
// Nếu có server-socket service, dùng URL Äó
// Format: wss://server.gvapi.cc hoặc ws://localhost:3320
const wsUrl = 'wss://server.ws-xyz.com/ws'; // Thay bằng URL thực tế của bạn
// Check nếu RealtimeWebSocketClient Äã ÄÆ°á»£c load
if (typeof RealtimeWebSocketClient === 'undefined') {
console.warn('[Homepage] RealtimeWebSocketClient not loaded, falling back to polling');
startFallbackPolling();
return;
}
wsClient = new RealtimeWebSocketClient(wsUrl);
// Subscribe to matches updates
wsClient.subscribe('matches:updated', (data) => {
//console.log('[Homepage] Received matches update from WebSocket');
if (data.code === '0000' && data.data) {
// Transform data Äá» tương thÃch vá»i renderAllMatches()
const transformedMatches = transformWebSocketMatches(data.data);
renderAllMatches(transformedMatches);
filterMatches('parent', transformedMatches);
saveMatchesToCache(transformedMatches); //
} else if (data.data && typeof data.data === 'object') {
// Nếu data trực tiếp là object (không có code)
const transformedMatches = transformWebSocketMatches(data.data);
renderAllMatches(transformedMatches);
filterMatches('parent', transformedMatches);
saveMatchesToCache(transformedMatches); //
}
});
// Handle connection events
wsClient.subscribe('connected', () => {
//console.log('[Homepage] WebSocket connected');
matchesWebSocketConnected = true;
// Stop fallback polling nếu Äang chạy
if (fallbackPollingInterval) {
clearInterval(fallbackPollingInterval);
fallbackPollingInterval = null;
}
});
wsClient.subscribe('disconnected', () => {
//console.log('[Homepage] WebSocket disconnected, falling back to polling');
matchesWebSocketConnected = false;
startFallbackPolling();
});
wsClient.subscribe('error', (error) => {
console.error('[Homepage] WebSocket error:', error);
matchesWebSocketConnected = false;
startFallbackPolling();
});
wsClient.connect();
}
// Fallback polling nếu WebSocket fail
function startFallbackPolling() {
if (fallbackPollingInterval) return; // Already running
//('[Homepage] Starting fallback polling');
fallbackPollingInterval = setInterval(() => {
if (!matchesWebSocketConnected) {
refreshMatches(); // Use existing function
} else {
// WebSocket reconnected, stop polling
clearInterval(fallbackPollingInterval);
fallbackPollingInterval = null;
}
}, 120000); // 2 minutes như cũ
}
// Nếu SSR Äã render HTML, ta không cần nạp từ localStorage hay fetch API lần Äầu nữa (tránh nháy mà n hình)
const ssrCardsCount = document.querySelectorAll('.match-card').length;
if (ssrCardsCount === 0) {
// Thá» load từ cache trưá»c nếu không có SSR
const cachedMatches = loadMatchesFromCache();
if (cachedMatches && cachedMatches.length > 0) {
try {
renderAllMatches(cachedMatches);
filterMatches('parent', cachedMatches);
} catch (error) {
console.error('[Cache Render Error]', error);
}
}
// Fetch fresh data từ API (cáºp nháºt + ghi Äè cache)
refreshMatches();
}
// Thá» WebSocket trưá»c, fallback to polling nếu fail
// Delay má»t chút Äá» Äảm bảo RealtimeWebSocketClient Äã ÄÆ°á»£c load
setTimeout(() => {
initMatchesWebSocket();
}, 500);
// Cleanup khi page unload
window.addEventListener('beforeunload', () => {
if (wsClient) {
wsClient.disconnect();
}
if (fallbackPollingInterval) {
clearInterval(fallbackPollingInterval);
}
});
</script>
<style>
.home-banner-slider {
width: 100%;
margin: 15px 0;
border-radius: 8px;
overflow: hidden;
position: relative;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
display: none;
/* Hidden by default until loaded */
z-index: 10;
}
.home-banner-track {
display: flex;
transition: transform 0.5s ease-in-out;
height: 100%;
}
.home-banner-slide {
min-width: 100%;
display: block;
text-decoration: none;
}
.home-banner-slide img {
width: 100%;
height: auto;
display: block;
object-fit: cover;
}
.home-banner-dots {
position: absolute;
bottom: 10px;
left: 0;
right: 0;
display: flex;
justify-content: center;
gap: 6px;
}
.home-banner-dot {
width: 8px;
height: 8px;
background: rgba(255, 255, 255, 0.5);
border-radius: 50%;
cursor: pointer;
transition: background 0.3s;
}
.home-banner-dot.active {
background: white;
transform: scale(1.2);
}
</style>
<script>
document.addEventListener('DOMContentLoaded', async function () {
try {
// Fetch settings
const res = await fetch('https://api.gvapi.cc/api/settings');
const data = await res.json();
if (data.success && data.home_banners && data.home_banners.length > 0) {
const banners = data.home_banners.sort((a, b) => a.order - b.order);
// Create slider container
const sliderContainer = document.createElement('div');
sliderContainer.className = 'home-banner-slider';
const track = document.createElement('div');
track.className = 'home-banner-track';
const dotsContainer = document.createElement('div');
dotsContainer.className = 'home-banner-dots';
banners.forEach((banner, index) => {
// Slide
const slide = document.createElement('a');
slide.className = 'home-banner-slide';
slide.href = banner.link_url && banner.link_url !== '#' ? banner.link_url : 'javascript:void(0)';
slide.target = banner.link_url && banner.link_url !== '#' ? '_blank' : '_self';
const img = document.createElement('img');
img.src = banner.image_url;
img.alt = banner.name || 'Banner';
slide.appendChild(img);
track.appendChild(slide);
// Dot
const dot = document.createElement('div');
dot.className = 'home-banner-dot';
if (index === 0) dot.classList.add('active');
dot.addEventListener('click', () => {
goToSlide(index);
});
dotsContainer.appendChild(dot);
});
sliderContainer.appendChild(track);
if (banners.length > 1) {
sliderContainer.appendChild(dotsContainer);
}
// Inject into DOM (after h1 in hero content)
const h1 = document.querySelector('.hero__content h1');
if (h1) {
h1.insertAdjacentElement('afterend', sliderContainer);
sliderContainer.style.display = 'block';
// Slider Logic
let currentIndex = 0;
let autoPlayInterval;
const totalSlides = banners.length;
function goToSlide(index) {
if (totalSlides <= 1) return;
currentIndex = index;
track.style.transform = `translateX(-${currentIndex * 100}%)`;
// Update dots
Array.from(dotsContainer.children).forEach((d, i) => {
if (i === currentIndex) d.classList.add('active');
else d.classList.remove('active');
});
resetAutoPlay();
}
function nextSlide() {
let next = currentIndex + 1;
if (next >= totalSlides) next = 0;
goToSlide(next);
}
function resetAutoPlay() {
clearInterval(autoPlayInterval);
autoPlayInterval = setInterval(nextSlide, 3000);
}
if (totalSlides > 1) {
resetAutoPlay();
}
}
}
} catch (err) {
console.error('Lá»i load home banners:', err);
}
});
</script>
<style>
@media (min-width: 481px) and (max-width: 767px) {
.match-card__status {
max-width: 120px;
font-size: 12px;
}
}
@media (min-width: 576px) and (max-width: 767px) {
.match-card__league {
max-width: 100px;
}
}
@media (min-width: 481px) and (max-width: 575px) {
.match-card__header {
flex-direction: row !important;
}
.match-card__time {
max-width: 100px !important;
}
}
.top-live-box {
width: 100%;
height: auto;
display: flex;
gap: 8px;
}
.top-live-box .left {
width: 100%;
min-height: 564px;
background-color: #000;
border-radius: 4px;
overflow: hidden;
}
.top-live-box .live-list {
width: 240px;
flex-shrink: 0;
}
.top-live-box .live-list .live-item {
width: 100%;
height: 144px;
margin-bottom: 6px;
cursor: pointer;
border-radius: 4px;
transition: all .1s ease-in-out;
overflow: hidden;
border: 2px solid transparent;
position: relative;
}
.top-live-box .live-list .live-item .anchor-item {
width: 100%;
height: 100%;
}
.el-image img {
display: block;
width: 100%;
height: 100%;
object-fit: cover;
}
.btn-view-truc-tiep {
position: absolute;
top: 70%;
left: 50%;
transform: translate(-50%, -50%);
z-index: 5;
background: #f2152d;
padding: 20px;
border-radius: 30px;
cursor: pointer;
text-align: center;
}
.btn-view-truc-tiep:hover {
opacity: 0.8;
}
.video-player {
position: relative;
}
.top-live-box .live-list .live-item.active {
border: 2px solid #ff0202;
}
.overlay-click {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: 10;
display: block;
}
/* Responsive */
@media screen and (max-width: 1024px) {
.top-live-box {
flex-direction: column;
}
.top-live-box .left {
width: 100%;
min-height: 400px;
}
.top-live-box .live-list {
display: none !important;
width: 100%;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
gap: 6px;
margin-top: 12px;
}
.top-live-box .live-list .live-item {
width: calc(50% - 6px);
height: 120px;
}
}
@media screen and (max-width: 768px) {
.top-live-box .left {
min-height: unset;
}
.btn-view-truc-tiep {
padding: 10px 10px;
font-size: 12px;
}
.top-live-box .live-list .live-item {
width: calc(50% - 3px);
height: 100px;
}
}
@media screen and (max-width: 480px) {
.top-live-box .live-list .live-item {
width: calc(50% - 3px);
height: 100px;
}
.btn-view-truc-tiep {
padding: 8px 14px;
font-size: 13px;
}
.match-card__body {
gap: 0.6rem;
}
}
</style>
<script src="//unpkg.byted-static.com/xgplayer/3.0.0-next.1/dist/index.min.js"></script>
<script src="//unpkg.com/[email protected]/dist/index.min.js"></script>
<link rel="stylesheet" href="//unpkg.byted-static.com/xgplayer/3.0.0-alpha.100/dist/xgplayer.min.css" />
<script type="text/javascript">
// Hà m lấy domain API random cho video-home (pinned-home)
function getVideoHomeApiDomain() {
const domains = [
'video-home.gvapi.cc'
];
// Random chá»n má»t domain
const index = Math.floor(Math.random() * domains.length);
const selected = domains[index];
return 'https://' + selected;
}
document.addEventListener('DOMContentLoaded', function () {
const apiBase = getVideoHomeApiDomain();
const STORAGE_KEY = 'pinnedMatchesCache';
const heroSection = document.querySelector('section.hero');
if (!heroSection) {
console.error('Hero section not found.');
return;
}
const skeletonHtml = `
<div class="top-live-box container skeleton-loading" id="pinned-matches-container">
<style>
.skeleton-box {
display: inline-block;
height: 100%;
width: 100%;
position: relative;
overflow: hidden;
background-color: #2a2a2a;
border-radius: 8px;
}
.skeleton-box::after {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
transform: translateX(-100%);
background-image: linear-gradient(
90deg,
rgba(255, 255, 255, 0) 0,
rgba(255, 255, 255, 0.05) 20%,
rgba(255, 255, 255, 0.2) 60%,
rgba(255, 255, 255, 0)
);
animation: shimmer 2s infinite;
content: '';
}
@keyframes shimmer { 100% { transform: translateX(100%); } }
.skeleton-loading .left { aspect-ratio: 16/9; background: #1a1a1a; padding: 10px; border-radius: 8px;}
.skeleton-loading .live-list { display: flex; gap: 10px; margin-top: 10px; }
.skeleton-loading .live-item { flex: 1; aspect-ratio: 1/1; background: #1a1a1a; border-radius: 8px; overflow: hidden; }
</style>
<div class="left">
<div class="skeleton-box" style="min-height: 300px;"></div>
</div>
<div class="live-list">
<div class="live-item"><div class="skeleton-box"></div></div>
<div class="live-item"><div class="skeleton-box"></div></div>
<div class="live-item"><div class="skeleton-box"></div></div>
<div class="live-item"><div class="skeleton-box"></div></div>
</div>
</div>
`;
function renderMatches(matches) {
const anchors = matches.slice(0, 4).map((match, index) => ({
streamUrl: match.playStreamAddress2,
image: match.houseImage,
name: match.nickName,
slug: match.slugKey + '?houseId=' + match.houseId
}));
if (anchors.length === 0) return;
const streamUrl = anchors[0].streamUrl;
const liveBoxHtml = `
<div class="top-live-box container" id="pinned-matches-container">
<div class="left">
<div class="video-container">
<div class="video-player">
<div id="mse" style="width: 100%;"></div>
<a href="/truc-tiep/${anchors[0].slug}" class="overlay-click" id="btn-view-link" rel="nofollow"></a>
<span class="btn-view-truc-tiep" rel="nofollow">Và o phòng live Äang phát sóng</span>
</div>
</div>
</div>
<div class="live-list">
${anchors.map((anchor, index) => `
<div class="live-item ${index === 0 ? 'active' : ''} live-living-item" data-index="${index}">
<div class="anchor-item">
<div class="placeholder img">
<img src="${anchor.image}" alt="${anchor.name}" style="object-fit: cover;">
</div>
</div>
</div>
`).join('')}
</div>
</div>
`;
const existingContainer = document.getElementById('pinned-matches-container');
if (existingContainer) {
existingContainer.outerHTML = liveBoxHtml;
} else {
heroSection.insertAdjacentHTML('afterend', liveBoxHtml);
}
if (window.Player && window.HlsPlayer) {
new Player({
plugins: [window.HlsPlayer],
id: "mse",
ignores: ["time", "progress"],
autoplayMuted: true,
autoplay: true,
playsinline: true,
isLive: true,
fluid: true,
pip: true,
muted: true,
url: streamUrl
});
}
const liveItems = document.querySelectorAll('#pinned-matches-container .live-item');
const viewLink = document.getElementById('btn-view-link');
liveItems.forEach(item => {
item.addEventListener('click', () => {
const index = parseInt(item.getAttribute('data-index'));
liveItems.forEach(i => i.classList.remove('active'));
item.classList.add('active');
if (window.Player && window.HlsPlayer) {
new Player({
plugins: [window.HlsPlayer],
id: "mse",
ignores: ["time", "progress"],
autoplayMuted: true,
autoplay: true,
playsinline: true,
isLive: true,
fluid: true,
pip: true,
muted: true,
url: anchors[index].streamUrl
});
}
if (viewLink) {
viewLink.href = '/truc-tiep/' + anchors[index].slug;
}
});
});
}
let hasLocalData = false;
try {
const cached = localStorage.getItem(STORAGE_KEY);
if (cached) {
const parsed = JSON.parse(cached);
if (parsed && parsed.length > 0) {
renderMatches(parsed);
hasLocalData = true;
}
}
} catch (e) {
console.error('Error parsing localStorage:', e);
}
if (!hasLocalData) {
heroSection.insertAdjacentHTML('afterend', skeletonHtml);
}
fetch('https://video-home.gvapi.cc/api/pinned-home?t=' + new Date().getTime())
.then(response => {
if (!response.ok) throw new Error('API Response not ok: ' + response.status);
return response.json();
})
.then(data => {
const matches = data.pinnedMatches;
if (!matches || matches.length < 1) {
localStorage.removeItem(STORAGE_KEY);
const existingContainer = document.getElementById('pinned-matches-container');
if (existingContainer) existingContainer.remove();
return;
}
localStorage.setItem(STORAGE_KEY, JSON.stringify(matches));
renderMatches(matches);
})
.catch(error => {
console.error('Error fetching API data:', error);
if (!hasLocalData) {
const existingContainer = document.getElementById('pinned-matches-container');
if (existingContainer) existingContainer.remove();
}
});
});
</script>
<style>
.aligncenter {
margin: 0 auto;
}
.wp-caption {
max-width: 100%;
}
footer .container {
grid-template-columns: 1fr;
}
</style>
<script>
const mini = document.querySelector('.video-player.is-floating.floating-draggable');
const margin = 8; // cách mép
function clampFloatingVideo() {
if (!mini) return;
const rect = mini.getBoundingClientRect();
let x = rect.left;
let y = rect.top;
const vw = window.innerWidth;
const vh = window.innerHeight;
const minX = margin;
const minY = margin; // nếu muá»n chừa notch: + safeTop
const maxX = vw - rect.width - margin;
const maxY = vh - rect.height - margin;
if (x < minX) x = minX;
if (x > maxX) x = maxX;
if (y < minY) y = minY;
if (y > maxY) y = maxY;
mini.style.left = x + 'px';
mini.style.top = y + 'px';
}
// chạy lại má»i khi viewport thay Äá»i
window.addEventListener('scroll', clampFloatingVideo);
window.addEventListener('resize', clampFloatingVideo);
window.addEventListener('orientationchange', clampFloatingVideo);
// iOS Safari thanh URL co giãn â nên dùng thêm:
if (window.visualViewport) {
visualViewport.addEventListener('resize', clampFloatingVideo);
visualViewport.addEventListener('scroll', clampFloatingVideo);
}
</script>
<script>
// === Catfish Banner Global: lấy từ API /api/catfish-banners (giá»ng React CatfishBanners.jsx) ===
(function () {
var apiUrl = 'https://api.gvapi.cc/api/catfish-banners';
fetch(apiUrl)
.then(function (res) { return res.ok ? res.json() : null; })
.then(function (data) {
if (!data || !data.success || !data.data || !data.data.length) return;
// === Video catfish overlay (nếu có trong trang watch) ===
var catfishLink = data.data[0].link_url || '';
if (catfishLink) {
var overlayTop = document.querySelector('.video-catfish-overlay-top');
var overlayBottom = document.querySelector('.video-catfish-overlay');
if (overlayTop) {
overlayTop.href = catfishLink;
overlayTop.style.display = 'block';
}
if (overlayBottom) {
overlayBottom.href = catfishLink;
overlayBottom.style.display = 'block';
}
}
// === Tạo container catfish-banner-global (fixed bottom, giá»ng React) ===
var wrapper = document.createElement('div');
wrapper.className = 'catfish-banner-global';
wrapper.style.cssText = 'position:fixed;bottom:0;left:0;right:0;z-index:9999;display:flex;flex-direction:column;align-items:center;pointer-events:none;width:50%;margin:0 auto;';
// Nút Äóng
var closeBtn = document.createElement('button');
closeBtn.className = 'catfish-banner-close';
closeBtn.innerHTML = 'â';
closeBtn.setAttribute('aria-label', 'Äóng quảng cáo');
closeBtn.style.cssText = 'position:absolute;top:-24px;right:4px;width:24px;height:24px;background:rgba(0,0,0,0.7);color:#fff;border:none;border-radius:50%;font-size:14px;line-height:24px;text-align:center;cursor:pointer;pointer-events:auto;z-index:10000;padding:0;';
closeBtn.addEventListener('click', function () { wrapper.remove(); });
wrapper.appendChild(closeBtn);
// Render banners
data.data.forEach(function (banner) {
var a = document.createElement('a');
a.className = 'catfish-banner-global-item';
a.href = banner.link_url || '#';
a.target = '_blank';
a.rel = 'nofollow noopener noreferrer';
a.style.cssText = 'display:block;width:100%;pointer-events:auto;line-height:0;cursor:pointer;';
var img = document.createElement('img');
img.src = banner.image_url;
img.alt = banner.name || 'Banner';
img.style.cssText = 'width:100%;height:auto;display:block;object-fit:contain;';
a.appendChild(img);
wrapper.appendChild(a);
});
document.body.appendChild(wrapper);
// Mobile: full width
var mq = window.matchMedia('(max-width: 768px)');
function applyMobile(e) { wrapper.style.width = e.matches ? '100%' : '50%'; }
applyMobile(mq);
mq.addListener(applyMobile);
})
.catch(function (e) { console.warn('Catfish banner load failed:', e); });
})();
</script>
<script>
// === FIX: Chặn smooth-scroll handlers can thiá»p và o catfish overlay ===
(function () {
document.addEventListener('click', function (e) {
var overlay = e.target.closest('.video-catfish-overlay, .video-catfish-overlay-top');
if (!overlay) return;
var href = overlay.getAttribute('href');
if (href && href !== '#' && !href.startsWith('#')) {
e.stopImmediatePropagation();
}
}, true);
})();
</script>
<script>
document.addEventListener("DOMContentLoaded", function () {
const walker = document.createTreeWalker(document.body, NodeFilter.SHOW_TEXT, null, false);
while (walker.nextNode()) {
const node = walker.currentNode;
if (node.nodeValue.match(/vô Äá»ch quá»c gia/i)) {
node.nodeValue = node.nodeValue.replace(/vô Äá»ch quá»c gia/gi, "VÄQG");
}
}
});
</script>
<script>
document.addEventListener('DOMContentLoaded', function () {
function updateLinks() {
document.querySelectorAll('.home-banner-slide').forEach(function(el) {
el.href = 'https://refvsbg.com/';
el.target = '_blank';
});
}
// Banner hiá»n có
updateLinks();
// Banner render sau bằng JS/API
new MutationObserver(updateLinks).observe(document.body, {
childList: true,
subtree: true
});
});
</script>
</html>
<!-- | onlive.io | 2026-10-17 13:02:56 -->
| # |
Url |
Url |
Source |
Date |
| 1 |
https://onlive.io/ |
|
2026-10-17 14:52:38 |
| 2 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 14:52:38 |
| 3 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 14:52:38 |
| 4 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 14:52:37 |
| 5 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 14:52:37 |
| 6 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 14:52:37 |
| 7 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 14:52:37 |
| 8 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 14:52:37 |
| 9 |
https://pad.stuve.de/s/2uLt5dFwF |
|
2026-10-17 14:52:36 |
| 10 |
https://informacionprevencion.com/ |
|
2026-10-17 14:52:36 |
| 11 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 14:52:36 |
| 12 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 14:52:36 |
| 13 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 14:52:36 |
| 14 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 14:52:35 |
| 15 |
https://triip80.info/ |
|
2026-10-17 14:52:34 |
| 16 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 14:52:34 |
| 17 |
https://www.thebolditalic.com/?gi=… |
|
2026-10-17 14:52:34 |
| 18 |
https://www.texarkanatwins.com/%25… |
|
2026-10-17 14:52:34 |
| 19 |
https://bestartdeals.com.au/ |
|
2026-10-17 14:52:34 |
| 20 |
https://jojojajan517.wixsite.com/i… |
|
2026-10-17 14:52:33 |