如何在 Roku 中增加响应时间



我为检查请求和响应时间创建了一个简单的场景。我只是要求使用如下。 我的 while 循环用于处理响应。

while(true)
msg = Wait(0, m.port) ' 100 millisecond pause
'            statusCode = msg.GetResponseCode()   ' check status code is working or not
print "Response wait for 10 Second pls Wait +++++++++++++++++++++++++++++++++++++++++++++++++"
if (type(msg) = "roUrlEvent")
?"event display here"
statusCode = msg.GetResponseCode()
headers = msg.GetResponseHeaders()
'                data = msg.getstring()
if msg.getresponsecode() = 200 then
data = msg.getstring()
headers = msg.getresponseheadersarray()
print "***************HEADERS******************"
for each header in headers
print header
end for
print "***************DATA*********************"
print data
m.top.GlobleEPGURL = data
print "****************************************"
?"statusCode value here : " statusCode
exit while
else
readInternet.asynccancel()
?"here not valid username and password"
end if
else
? "do something useful while we wait for data"         
end if
end while

大约需要 15 秒到 20 秒。 任何人都知道如何增加 Roku 站点上的超时。我读过一些网站 不完全是 0 代表无限 但是另一个机顶盒,如安卓和 ios 它处理 110 秒的响应。那么为什么Roku设备只能处理15秒。我不知道我做错了什么,请帮助。

编辑帖子 :

我的 init(( 代码在这里,我已经在上面提到了我的 while 循环

readdata = CreateObject("roUrlTransfer")
data = "http://" + m.top.globleurl + "/api/DefaultAPI/?name=" + m.top.globleusername + "&pass=" + m.top.globlepassword
readdata.EnableEncodings(true)
readdata.setUrl(data)
m.port=createobject("roMessagePort")
readdata.setport(m.port)
readdata.gettostring()
readdata.SetRequest("POST") ' Here I check also Get
request = readdata.AsyncPostFromString(data) ' Here I check also AsyncGetFromString

我的 xml 文件在下面

<?xml version="1.0" encoding="UTF-8"?>
<component name="Login" extends="Task">
<interface>
<field id="GlobleURL" type="string" onChange = "GetAuthData"/>
<field id="GlobleEPGURL" type="string"/>
<field id="globleusername" type="string" onChange = "GetAuthData"/>
<field id="globlepassword" type="string" onChange = "GetAuthData"/>
</interface>
<script type="text/brightscript" uri="pkg:/components/Login.brs" />
</component>

在这里,我为请求和响应创建了单独的文件,并在下面附加了该文件代码。

m.loginscreen = CreateObject("roSGNode", "Login")
m.top.appendChild(m.loginscreen)

它不是响应时间问题。很可能您正在阻塞主线程。如果主线程将被阻塞超过 15 秒,或者如果您以同步方式请求,则超时将约为 15-20 秒。此外,它可能导致应用程序崩溃。要克服此类问题,请使用"Task">节点尝试使用,并使用异步方法接收响应。

最新更新