Tizen Socket.IO连接仅适用于5.0



所以我有一个问题,我的应用程序只运行在5.0模拟器。我在4.0 - 5.0 - 5.5上测试了这个应用程序。6.0 .

这个项目最初是在5.0上创建的,但我后来在v4.0上重新创建了它,但仍然存在同样的问题。

我认为它与套接字连接有关,但为什么它只适用于5.0?当测试时,我所改变的是选择不同的模拟器版本。

指数

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<meta name="description" content="Scheduled-countdown"/>
<title>Scheduled-countdown</title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>     
</head>
<body>
<div class=container>


<div class=centerContainer>
<div id=ipInput style="height:100%">
<!--            Storage key:
<input type="text" id="storageKey" style="width: 50px"/> -->
ipAdress:
<input type="text" id="storageData" style="width: 50%"/>
<input type="button" id="save" value="SAVE" onclick="addStorage(); return false;"/>
<h1 id="ipAdress">No Save ipAdress</h1>
</div>



<div id="currentTime"></div>
<div id="title"></div>
<div id="time"></div>
</div>
</div>  
</body>
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.3.0/socket.io.js"></script>
<script>
let countDownBool;
let bgColor;

var ipAdress = localStorage.getItem(localStorage.key("ipAdress"))
console.log(ipAdress)
var ipString = `http://192.168.8.124:3000`
console.log(ipString)
ipAdress.textContent = localStorage.getItem(localStorage.key("ipAdress"))


const socket = io(ipString,{path: '/ws',});


socket.on('connect', () => {
console.log('SocketConnected!');
document.getElementById("ipInput").style.display = "none";


});

socket.on('message', (data) => {
const { type, message } = data;
//console.log(type);

if (type == "currentTime") {
document.getElementById("currentTime").textContent = message;

if (countDownBool){
//style.display = "block"; style.display = "none";
document.getElementById("currentTime").style.display = "none";
document.getElementById("title").style.display = "block";
document.getElementById("time").style.display = "block";

}else{
document.getElementById("currentTime").style.display = "block";
document.getElementById("title").style.display = "none";
document.getElementById("time").style.display = "none";
}
//console.log("currentTime");

}

if (type == "countDown") {
document.getElementById("title").textContent = message.title;
document.getElementById("time").textContent = message.time;

if(message.bool){
countDownBool = true;


if (message.countDownTimeInMS > (-3*60000) && message.countDownTimeInMS < 0) {
bgColor = message.colors.countDownColor;
}else if(message.countDownTimeInMS > 0){
bgColor = message.colors.countUpColor;
}

//-------------------
if(message.countDownTimeInMS > (-5*60000) && message.countDownTimeInMS < (-5*60000+1000)){
console.log("Vibrate 5");
navigator.vibrate([100, 100, 100, 100, 100, 100, 100, 100, 100, 100]);
}
if(message.countDownTimeInMS > (-4*60000) && message.countDownTimeInMS < (-4*60000+1000)){
console.log("Vibrate 4");
navigator.vibrate([100, 100, 100, 100, 100, 100, 100, 100]);
}
if(message.countDownTimeInMS > (-3*60000) && message.countDownTimeInMS < (-3*60000+1000)){
console.log("Vibrate 3");
navigator.vibrate([100, 100, 100, 100, 100, 100]);
}
if(message.countDownTimeInMS > (-2*60000) && message.countDownTimeInMS < (-2*60000+1000)){
console.log("Vibrate 2");
navigator.vibrate([100, 100, 100, 100]);
}
if(message.countDownTimeInMS > (-1*60000) && message.countDownTimeInMS < (-1*60000+1000)){
console.log("Vibrate 1");
navigator.vibrate([100, 100]);
}
if(message.countDownTimeInMS > (0) && message.countDownTimeInMS < (0+1000)){
console.log("Vibrate START");
navigator.vibrate([1000, 100, 1000, 100]);
}
//-------------------

}else{
countDownBool = false;
document.body.style.backgroundColor = "2b2b2b";
}

}
});

</script>

<script>
function addStorage() {
//var key = document.getElementById('storageKey');
var key = "ipAdress";
var data = document.getElementById('storageData');


/* Set the local storage item */
if ('localStorage' in window) {
localStorage.setItem(key.value, data.value);
location.reload();
} else {
alert('no localStorage in window');
}

/* Set the session storage item */
if ('sessionStorage' in window) {
sessionStorage.setItem(key.value, data.value);
location.reload();
} else {
alert('no sessionStorage in window');
}
}
</script>
</html>

设置
S<?xml version="1.0" encoding="UTF-8"?>
<widget xmlns="http://www.w3.org/ns/widgets" xmlns:tizen="http://tizen.org/ns/widgets" id="http://yourdomain/ScheduledCountdownTizen4" version="1.0.0" viewmodes="maximized">
<access origin="https://cdnjs.cloudflare.com" subdomains="true"/>
<tizen:application id="YGGUZsElLs.ScheduledCountdownTizen4" package="YGGUZsElLs" required_version="4.0"/>
<author href="https://github.com/mattehalen/Scheduled-countdown" email="matte_halen@hotmail.com">Mathias Halén</author>
<tizen:background-category value="background-network"/>
<content src="index.html"/>
<feature name="http://tizen.org/feature/screen.size.all"/>
<icon src="icon.png"/>
<name>ScheduledCountdownTizen4</name>
<tizen:privilege name="http://tizen.org/privilege/internet"/>
<tizen:profile name="wearable"/>
<tizen:setting background-support="enable" encryption="disable" hwkey-event="enable"/>
</widget>

问题似乎与您的访问源有关。
<access origin="https://cdnjs.cloudflare.com" subdomains="true"/>
您应该修改您的访问原点为您的IP字符串(192.168.8.124)
<access origin="192.168.8.124:3000" subdomains="true"/>
或使其为*
<access origin="*" subdomains="true"/>

相关内容

最新更新