$(document).ready(function () { // Thêm HTML cho popup vào body $('body').append(` `); // Sự kiện click cho nút đăng nhập $(document).on('click', '.login-button', function (e) { e.preventDefault(); $('#auth-overlay').show(); $('#login-popup').show(); }); // Sự kiện click cho nút đăng ký $(document).on('click', '.register-button', function (e) { e.preventDefault(); $('#auth-overlay').show(); $('#register-popup').show(); }); // Chuyển đổi giữa popup đăng nhập và đăng ký $('#switch-to-register').click(function (e) { e.preventDefault(); $('#login-popup').hide(); $('#register-popup').show(); }); $('#switch-to-login').click(function (e) { e.preventDefault(); $('#register-popup').hide(); $('#login-popup').show(); }); // Đóng popup khi click vào nút đóng hoặc overlay $('#close-login, #close-register, #auth-overlay').click(function () { $('#login-popup, #register-popup, #auth-overlay').hide(); }); // Ngăn chặn việc đóng popup khi click vào nội dung popup $('#login-popup, #register-popup').click(function (e) { e.stopPropagation(); }); // Xử lý form đăng ký $('#register-form').submit(function (e) { e.preventDefault(); const userName = $('#reg-username').val(); const nickName = $('#reg-nickname').val(); const password = $('#reg-password').val(); const phone = $('#reg-phone').val(); const phoneCode = $('#reg-phone-code').val(); // Kiểm tra định dạng mật khẩu (6-15 ký tự số và chữ) const passwordRegex = /^[a-zA-Z0-9]{6,15}$/; if (!passwordRegex.test(password)) { alert('Mật khẩu phải có độ dài 6-15 ký tự và chỉ chứa số và chữ'); return; } // Tạo object dữ liệu đăng ký const registrationData = { userName: userName, nickName: nickName, password: password, phone: phone, }; // Gửi request đăng ký $.ajax({ url: 'https://domainapi.space/register.php', type: 'POST', contentType: 'application/json', data: JSON.stringify(registrationData), success: function (response) { if (response.success) { // Lưu thông tin người dùng vào localStorage response.data.reload_login = true; response.data.guest = false; response.data.nickName = nickName; localStorage.setItem('userInfo', JSON.stringify(response.data)); // Hiển thị thông báo và đóng popup alert('Đăng ký thành công!'); $('#register-popup, #auth-overlay').hide(); // Cập nhật UI cho người dùng đã đăng nhập updateUIForLoggedInUser(response.data); window.location.reload(); } else { alert('Đăng ký thất bại: ' + response.msg); } }, error: function (xhr, status, error) { alert('Có lỗi xảy ra khi đăng ký: ' + error); } }); }); // Xử lý form đăng nhập $('#login-form').submit(function (e) { e.preventDefault(); const userName = $('#login-username').val(); const password = $('#login-password').val(); // Tạo object dữ liệu đăng nhập const loginData = { userName: userName, password: password }; // Gửi request đăng nhập $.ajax({ url: 'https://domainapi.space/login.php', type: 'POST', contentType: 'application/json', data: JSON.stringify(loginData), success: function (response) { if (response.success) { // Lưu thông tin người dùng vào localStorage localStorage.setItem('userInfo', JSON.stringify(response.data)); // Hiển thị thông báo và đóng popup alert('Đăng nhập thành công!'); $('#login-popup, #auth-overlay').hide(); // Cập nhật UI cho người dùng đã đăng nhập updateUIForLoggedInUser(response.data); window.location.reload(); } else { alert('Đăng nhập thất bại: ' + response.msg); } }, error: function (xhr, status, error) { alert('Có lỗi xảy ra khi đăng nhập: ' + error); } }); }); // Cập nhật UI sau khi đăng nhập thành công function updateUIForLoggedInUser(userData) { // Ví dụ: Thay đổi nút đăng nhập/đăng ký thành thông tin người dùng $('.login-button').hide(); $('.register-button').hide(); // Hiển thị thông tin người dùng if (!$('.user-info').length) { $('
').insertAfter('.register-button'); } $('.user-info').html(`
${userData.nickName || userData.userName}
`); } // Xử lý đăng xuất $(document).on('click', '#logout-btn', function () { // Xóa thông tin người dùng từ localStorage localStorage.removeItem('userInfo'); // Cập nhật UI $('.user-info').remove(); $('.login-button, .register-button').show(); alert('Đã đăng xuất thành công!'); }); }); function toMsgType(msgCode) { let arr = msgCode.split("_"); let result = "" for (let key of arr) { result += key.substring(0, 1).toUpperCase() + key.substring(1).toLowerCase() } return result; } function getMsgObj(oMsgCode, obj) { if (!oMsgCode) { return null } let strMsgType = this.toMsgType(oMsgCode); // 获取消息类型 if (!strMsgType) { // å¦‚æžœæ— æ³•è¯†åˆ«ä¸ºæ¶ˆæ¯ç±»åž‹, console.error(`æ— æ³•è¯†åˆ«ä¸ºæ¶ˆæ¯ç±»åž‹, msgCode = ( ${strMsgType} )`); return null; } let result = new proto.msg[strMsgType] result.$messageId = proto.msg.MsgCode[oMsgCode] if (!result.$messageId) { return null; } for (let key in obj) { let mKey = "set" + key.substring(0, 1).toUpperCase() + key.substring(1) if (result[mKey]) { result[mKey](obj[key]) } } return result; } // GET CHAT $.ajax({ type: 'GET', url: 'https://domainapi.space/chat_url.php', headers: { "content-type": "application/json" }, success: (res) => { localStorage.setItem('chat_urlloa', res.data); boolUser(); //判断用户是否登录 function boolUser() { let userInfo = localStorage.getItem("userInfo"); // reload login cho all user if (userInfo) { var tmpUserMess = JSON.parse(userInfo); /*if (!tmpUserMess.reload_login) { console.log("Phải reload lại login"); userMess = false; localStorage.removeItem('userInfo'); }*/ msg_token = tmpUserMess.token; } } // Kiểm tra trạng thái đăng nhập khi tải trang checkLoggedInStatus(); function rep(text) { if (/href=/g.test(text)) { return text.replace("a href", 'a rel="nofollow" href').replace("a href", 'a rel="nofollow" href').replace("a href", 'a rel="nofollow" href').replace("a href", 'a rel="nofollow" href').replace("a href", 'a rel="nofollow" href').replace("a href", 'a rel="nofollow" href').replace("a href", 'a rel="nofollow" href'); } const Rexp = /((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g; // Replace the RegExp content by HTML element return text.replace(Rexp, "$1"); } function rep_reply(text) { if (/username_reply/g.test(text)) { return text; } const Rexp = /(.*){(.+?)}(.*)/g; // Replace the RegExp content by HTML element return text.replace(Rexp, "{reply $2} $1 $3"); } function rep_emoji(text) { if (/emoji/g.test(text)) { return text; } const Rexp = /\[([0-9]+?)\]/g; // Replace the RegExp content by HTML element return text.replace(Rexp, ""); } function decodeHTMLEntities(str) { if (str && typeof str === 'string') { // strip script/html tags str = str.replace(/]*>([\S\s]*?)<\/script>/gmi, ''); str = str.replace(/]*>([\S\s]*?)<\/css>/gmi, ''); } return str; } let g_oWebSocket = null, uid = null, msgId = 0, dataList = [], timer = null, webSocketUrl = '', timeOutVal = 3000, heartbeatTime = 0, retryCount = 1 // Kiểm tra nếu người dùng đã đăng nhập function checkLoggedInStatus() { const userInfo = localStorage.getItem('userInfo'); if (userInfo) { var tmpUserMess = JSON.parse(userInfo); if (!tmpUserMess.guest) { updateUIForLoggedInUser(JSON.parse(userInfo)); } } else { $.ajax({ url: 'https://domainapi.space/register.php?random', type: 'GET', contentType: 'application/json', success: function (response) { if (response.success) { // Lưu thông tin người dùng vào localStorage response.data.reload_login = true; response.data.guest = true; response.data.nickName = response.data.nickName; localStorage.setItem('userInfo', JSON.stringify(response.data)); if (g_oWebSocket) { g_oWebSocket.close(); g_oWebSocket = null; } if (JSON.parse(localStorage.getItem('userInfo'))) { appUserId = JSON.parse(localStorage.getItem("userInfo")).userId; } console.log('app_u_id: ' + appUserId); boolUser(); connectDo(); //window.location.reload(); } } }); } } //消息模板 function messageTempLate(data, id) { let message_str = ''; for (let i = 0; i < data.length; i++) { let message = data[i]; //console.log(message); //message.text = rep(message.text); message.text = rep_reply(message.text); message.text = rep_emoji(message.text); message.text = decodeHTMLEntities(message.text); message.text = message.text.replace(/]*?)>/gi, function (match, p1) { if (/rel\s*=\s*["']([^"']*)["']/i.test(p1)) { return match.replace(/rel\s*=\s*["']([^"']*)["']/i, function (_, relVal) { const newRel = new Set(relVal.split(/\s+/).concat(['nofollow'])); return `rel="${Array.from(newRel).join(' ')}"`; }); } else { return ``; } }); // Tin nhắn hệ thống thì bỏ qua if (message.msgType === 2 || message.msgType === 3) { //message_str += `
//

${message.userName} vừa tham gia chat //

`; } else { message_str += `
Lv${message.userLevel} ${message.userName}: ${message.text}
`; } } document.getElementById(id).innerHTML = message_str; } //将消息对象序列化为字节数组 function __makeUint8Array(oMsg) { if (!oMsg || !oMsg.msgCode || !oMsg.msgBody) return null // 获取消息代码 let msgObj = getMsgObj(oMsg.msgCode, oMsg.msgBody); if (!msgObj) { return null } let nMsgCode = msgObj.$messageId; let body = msgObj.serializeBinary(); return Int8Array.of((nMsgCode >> 24) & 0xff, (nMsgCode >> 16) & 0xff, (nMsgCode >> 8) & 0xff, nMsgCode & 0xff, ...body) } let appUserId = 'Heocon332' if (JSON.parse(localStorage.getItem('userInfo'))) { appUserId = JSON.parse(localStorage.getItem("userInfo")).userId; } let houseId = document.querySelector('.contaiver-live')?.getAttribute('data-id'); //尝试自动连接 function connectDo() { connect((bSuccezz) => { if (bSuccezz) { msgId = 0; // 创建消息对象 if (houseId) { let oMsg = { msgCode: 'USER_ENTRY_CMD', msgBody: { //字符串记得带引号 appUserId: appUserId, deviceId: generateUUID(), matchId: houseId, }, }; // 发送消息 sendMsg(oMsg); } else { let oMsg = { msgCode: 'USER_ENTRY_CMD', msgBody: { //字符串记得带引号 appUserId: appUserId, deviceId: generateUUID(), matchId: houseId, }, }; // 发送消息 sendMsg(oMsg); } } }); } function connectDoWithCallback(callback) { connect((bSuccezz) => { if (bSuccezz) { msgId = 0; let oMsg = { msgCode: 'USER_ENTRY_CMD', msgBody: { appUserId: appUserId, deviceId: generateUUID(), matchId: houseId || '', }, }; sendMsg(oMsg); // Chờ một chút để đảm bảo WebSocket sẵn sàng setTimeout(() => { if (g_oWebSocket && g_oWebSocket.readyState === WebSocket.OPEN) { callback(); } else { console.error('WebSocket không sẵn sàng sau khi kết nối'); alert('Không thể kết nối đến hệ thống chat. Vui lòng thử lại.'); } }, 100); } else { console.error('Kết nối WebSocket thất bại'); alert('Không thể kết nối đến hệ thống chat. Vui lòng thử lại.'); } }); } //自动重连 function autoConnect() { timer = setInterval(() => { if (isDisconnected()) { // 如果已经断开连接,则重新连接 if (retryCount >= 10) { clearInterval(timer) } else { retryCount++; //onnectDo(); } } else { let now = new Date().getTime(); if (now - timeOutVal > 10000) { heartbeatTime = now; let oMsg = { msgCode: 'USER_HEARTBEAT_CMD', msgBody: {} }; // 发送消息 sendMsg(oMsg); } } }, timeOutVal); } //断开连接 function isDisconnected() { return null == g_oWebSocket; } //连接服务器 function connect(funCb) { if (null != g_oWebSocket) return; // 创建 WebSocket let chat_urlloa = localStorage.getItem('chat_urlloa'); //console.log(chat_urlloa); let oWebSocket = new WebSocket(chat_urlloa); oWebSocket.binaryType = 'arraybuffer'; oWebSocket.onopen = () => { console.log('mo ket noi'); g_oWebSocket = oWebSocket; // 确保回调函数不为空 funCb = funCb || function () { }; // 执行回调函数 funCb(true); }; oWebSocket.onerror = () => { console.log('loi ket noi'); g_oWebSocket = null; // 确保回调函数不为空 funCb = funCb || function () { }; // 执行回调函数 funCb(false); }; oWebSocket.onclose = () => { console.log('dong ket noi'); g_oWebSocket = null; }; oWebSocket.onmessage = (oEvent) => { console.log('doc noi dung'); // 反序列化为消息对象 let oMsg = makeMsgObj(new Uint8Array(oEvent.data)); if (!oMsg) return; // 触发事件函数 onReceiveMsg(oMsg); }; } function generateUUID() { var d = new Date().getTime(); var uuid = 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) { var r = (d + Math.random() * 16) % 16 | 0; d = Math.floor(d / 16); return (c == 'x' ? r : (r & 0x7 | 0x8)).toString(16); }); return uuid; } //接收消息对象 function onReceiveMsg(oMsg) { if (!oMsg) return //console.log(oMsg.msgCode); switch (oMsg.msgCode) { case 'USER_ENTRY_RESULT': userEntryResult(oMsg.msgBody); break; case 'USER_NEW_MESSAGE_RESULT': newMessage(oMsg.msgBody); break; } } //Tin nhắn đẩy function userEntryResult(arr) { if (arr && arr.messageDataListList && arr.messageDataListList.length > 0) { let list = [] uid = arr.uid for (let oldObj of arr.messageDataListList) { let obj = toJsObj(oldObj); list.push(obj); } dataList = list; messageTempLate(list, 'chat_messages'); goBottomNoAniamte(); } } //Tin nhắn mới function newMessage(arr) { if (arr && arr.messageDataListList && arr.messageDataListList.length > 0) { for (let oldObj of arr.messageDataListList) { let obj = toJsObj(oldObj); if (obj.msgId > msgId) { dataList.push(obj) } dataList.push(obj); } messageTempLate(dataList, 'chat_messages'); goBottomNoAniamte(); } } //ws发送消息 function sendMsg(oMsg) { if (!oMsg || !g_oWebSocket) return; // 序列化为字节数组 let oUint8Array = __makeUint8Array(oMsg); if (!oUint8Array || oUint8Array.byteLength <= 0) { return; } // 发送字节数组 g_oWebSocket.send(oUint8Array); } //链接ws connectDo(); autoConnect(); //回到底部 function goBottomNoAniamte() { let time_scroll = 0; const date = new Date(); const checktime = (date.getTime() - time_scroll); if (checktime > 15000) { let list = document.getElementById('chat_messages'); if (list) { const isAtBottom = list.scrollHeight - list.scrollTop <= list.clientHeight + 5; console.log(isAtBottom); if (isAtBottom) { list.scrollTop = list.scrollHeight; } mouse_scroll = false; toggleScrollDownButton(); } } } function sendMessage() { let input_ele = document.getElementById('hvdev_message') let oMsg = { msgCode: 'USER_SEND_MESSAGE_CMD', msgBody: { text: input_ele.value + '.', msgId: msgId, } }; sendMsg(oMsg) input_ele.value = '' } // Tạo và thêm nút cuộn xuống vào DOM function createScrollDownButton() { let scrollButton = document.getElementById('scroll_down_button'); if (!scrollButton) { scrollButton = document.createElement('button'); scrollButton.id = 'scroll_down_button'; scrollButton.innerHTML = '↓'; // Mũi tên xuống Object.assign(scrollButton.style, { display: 'none', position: 'fixed', bottom: '20px', right: '20px', zIndex: '1000', width: '30px', height: '30px', borderRadius: '50%', background: '#007bff', color: 'white', border: 'none', cursor: 'pointer', fontSize: '16px', textAlign: 'center', lineHeight: '30px', boxShadow: '0 2px 5px rgba(0, 0, 0, 0.2)' }); scrollButton.addEventListener('click', scrollToBottom); document.querySelector('.login-button').appendChild(scrollButton); } return scrollButton; } function toggleScrollDownButton() { let list = document.getElementById('chat_messages'); let scrollButton = document.getElementById('scroll_down_button'); if (list && scrollButton) { const isAtBottom = list.scrollHeight - list.scrollTop <= list.clientHeight + 5; scrollButton.style.display = isAtBottom ? 'none' : 'block'; } } function scrollToBottom() { let list = document.getElementById('chat_messages'); if (list) { list.scrollTop = list.scrollHeight; toggleScrollDownButton(); } } createScrollDownButton(); let list = document.getElementById('chat_messages'); if (list) { list.addEventListener('scroll', toggleScrollDownButton); } //发送消息 $(".hvdev-sendMsg").on("click", function () { time_scroll = 0; sendMessage(); return false; }); //按enter发送消息 $("#hvdev_message").bind("keyup", function (event) { if (event.keyCode == "13") { time_scroll = 0; sendMessage(); } }); } });
Warning: mkdir(): Permission denied in /www/wwwroot/all/watch.php on line 575

Warning: file_put_contents(/www/sites/shibuya-ygp.com/wp-content/cache/tructiep/shenzhen-peng-city-vs-shanghai-port-luc-0200-ngay-01-07-2025-zrkn6ivx489fwql_75748097.html): Failed to open stream: No such file or directory in /www/wwwroot/all/watch.php on line 578
Trực Tiếp Shenzhen Peng City Vs Shanghai Port 19:00 30-06-2025 Miễn Phí - Shibuya-ygp.com

Xem trực tiếp Shenzhen Peng City vs Shanghai Port lúc 19:00 30-06-2025

Shenzhen Peng City
0
-
0
Shanghai Port
Giải bóng đá ngoại hạng Trung Quốc
Đang tải dữ liệu

Tên miền chính thức: COLATV.LIVE - AE muốn tạo tài khoản, nhận khuyến mãi, nhận kèo đề xuất - Vui lòng nhắn tin Zalo / Facebook - Hỗ trợ nhiệt tình 24/7 - Chúc AE xem bóng đá vui vẻ tại COLATV.LIVE

MÔ PHỎNG TRẬN ĐẤU

Xem bóng đá Shenzhen Peng City vs Shanghai Port 19:00 30-06-2025 miễn phí

Trận đấu Shenzhen Peng City vs Shanghai Port sẽ diễn ra vào lúc 19:00 30-06-2025 trong khuôn khổ Giải bóng đá ngoại hạng Trung Quốc và được trực tiếp hoàn toàn miễn phí tại Xoilac TV – nền tảng phát sóng bóng đá không thu phí, không cần đăng ký và không ràng buộc tài khoản.

Một trong những điều gây khó chịu nhất khi xem bóng đá trực tuyến hiện nay là quảng cáo chen ngang bất ngờ giữa trận, đặc biệt trong các thời điểm kịch tính. Khi theo dõi trận Shenzhen Peng City vs Shanghai Port 19:00 30-06-2025, việc bị ngắt quãng bởi quảng cáo có thể khiến người xem mất cảm xúc, thậm chí bỏ lỡ khoảnh khắc quan trọng.

Trực tiếp Shenzhen Peng City vs Shanghai Port 19:00 30-06-2025 hình ảnh HD, âm thanh sống động

Chất lượng đường truyền là một trong những ưu tiên hàng đầu tại Xoilac TV. Khi theo dõi trận Shenzhen Peng City vs Shanghai Port {gioda} Giải bóng đá ngoại hạng Trung Quốc, người xem sẽ được trải nghiệm hình ảnh chuẩn HD sắc nét, rõ ràng đến từng đường bóng, từng pha xử lý kỹ thuật hay những tình huống va chạm trên sân.

Dù xem trên máy tính, điện thoại hay smart TV, trận Shenzhen Peng City vs Shanghai Port {gioda} luôn đảm bảo mượt mà, không giật lag, giúp bạn thưởng thức trọn vẹn mọi cảm xúc mà bóng đá mang lại.

hello123

MÔ PHỎNG TRẬN ĐẤU

THỐNG KÊ TRẬN ĐẤU

Shanghai Port

Đối Đầu Shanghai Port

Trận Ngày đội HT FT
Giải bóng đá ngoại hạng Trung Quốc 23.02.2025 Shanghai Port Shanghai Port Shenzhen Peng City Shenzhen Peng City -1.25 1 0 3 1
Giải bóng đá ngoại hạng Trung Quốc 13.09.2024 Shanghai Port Shanghai Port Shenzhen Peng City Shenzhen Peng City -3 1 0 2 0

Phong độ gần đây

Shanghai Port

Shanghai Port

Trận Ngày đội HT FT
Giải bóng đá ngoại hạng Trung Quốc 19.07.2025 Shenzhen Peng City Shenzhen Peng City Qingdao Hainiu FC Qingdao Hainiu FC 0 0 0 0 0
Giải bóng đá ngoại hạng Trung Quốc 26.07.2025 Câu lạc bộ bóng đá Yuxi Yukun Câu lạc bộ bóng đá Yuxi Yukun Shenzhen Peng City Shenzhen Peng City 0 0 0 0 0
Giải bóng đá ngoại hạng Trung Quốc 03.08.2025 Shenzhen Peng City Shenzhen Peng City Zhejiang Professional Zhejiang Professional 0 0 0 0 0
Giải bóng đá ngoại hạng Trung Quốc 25.06.2025 Chengdu Rongcheng Chengdu Rongcheng Shenzhen Peng City Shenzhen Peng City -2 2 0 5 0
Giải bóng đá ngoại hạng Trung Quốc 18.06.2025 Shenzhen Peng City Shenzhen Peng City Wuhan Three Towns Wuhan Three Towns 0 0 0 1 2
Giải bóng đá ngoại hạng Trung Quốc 14.06.2025 Shenzhen Peng City Shenzhen Peng City Shanghai Shenhua Shanghai Shenhua 1 1 1 3 1
Cúp Bóng đá Liên đoàn Trung Quốc 21.05.2025 Quảng Châu E-Power FC Quảng Châu E-Power FC Shenzhen Peng City Shenzhen Peng City 1.25 2 0 2 2
Giải bóng đá ngoại hạng Trung Quốc 10.05.2025 Beijing Guoan Beijing Guoan Shenzhen Peng City Shenzhen Peng City -1.75 2 0 3 1
Giải bóng đá ngoại hạng Trung Quốc 06.05.2025 Qingdao West Coast Qingdao West Coast Shenzhen Peng City Shenzhen Peng City -0.5 0 0 0 0
Giải bóng đá ngoại hạng Trung Quốc 01.05.2025 Shenzhen Peng City Shenzhen Peng City Tianjin Jinmen Tiger Tianjin Jinmen Tiger -0.5 1 0 1 0
Shenzhen Peng City

Shenzhen Peng City

Trận Ngày đội HT FT
Giải bóng đá ngoại hạng Trung Quốc 18.07.2025 Changchun Yatai Changchun Yatai Shanghai Port Shanghai Port 0 0 0 0 0
Giải bóng đá ngoại hạng Trung Quốc 26.07.2025 Shanghai Port Shanghai Port Qingdao West Coast Qingdao West Coast 0 0 0 0 0
Giải bóng đá ngoại hạng Trung Quốc 02.08.2025 Meizhou Hakka Meizhou Hakka Shanghai Port Shanghai Port 0 0 0 0 0
Giải bóng đá ngoại hạng Trung Quốc 26.06.2025 Shanghai Port Shanghai Port Câu lạc bộ bóng đá Zhixing Đại Liên Câu lạc bộ bóng đá Zhixing Đại Liên -1.25 2 0 3 0
Cúp Bóng đá Liên đoàn Trung Quốc 22.06.2025 Shanghai Port Shanghai Port Shanghai Shenhua Shanghai Shenhua 0 0 1 2 3
Giải bóng đá ngoại hạng Trung Quốc 18.06.2025 Henan Songshan Longmen Henan Songshan Longmen Shanghai Port Shanghai Port 0.25 0 3 1 3
Giải bóng đá ngoại hạng Trung Quốc 14.06.2025 Zhejiang Professional Zhejiang Professional Shanghai Port Shanghai Port 0.25 0 1 2 2
Cúp Bóng đá Liên đoàn Trung Quốc 21.05.2025 Suzhou Dongwu Suzhou Dongwu Shanghai Port Shanghai Port 1.75 1 1 2 6
Giải bóng đá ngoại hạng Trung Quốc 17.05.2025 Shanghai Port Shanghai Port Shandong Taishan Shandong Taishan -0.5 0 0 1 1
Giải bóng đá ngoại hạng Trung Quốc 09.05.2025 Shanghai Port Shanghai Port Qingdao Hainiu FC Qingdao Hainiu FC -1.5 1 1 3 1

XEM CÁC TRẬN KHÁC

Cúp Vàng CONCACAF
ĐANG TRỰC TIẾP
06:15 29/06/2025
Panama
1 : 1
Honduras
Major League Soccer
ĐANG TRỰC TIẾP
06:30 29/06/2025
Orlando City
0 : 0
CLB Cincinnati
Major League Soccer
ĐANG TRỰC TIẾP
06:30 29/06/2025
New York Red Bulls
1 : 1
Minnesota United
Major League Soccer
ĐANG TRỰC TIẾP
06:30 29/06/2025
DC United
0 : 0
CLB Nashville
Hiệp hội bóng rổ quốc gia nữ
ĐANG TRỰC TIẾP
07:00 29/06/2025
Dallas Wings
0 : 0
Washington Mystics
Ẩn