我的要求是在我的三星智能电视应用程序中有一个监听套接字,以便从同一本地网络中的设备接收事件。
我一直在网上搜索执行此操作的方法,并且遇到了诸如Node.js、Socket.io、websocket之类的术语。尽管我在 Web 开发方面理解这些术语(我认为),但我无法想象在我的三星智能电视应用程序中打开监听套接字的方法。
只是为了玩玩,我使用GCD 异步套接字在 iOS 上编写了一个 TCP 服务器代码,并考虑将其连接到智能电视并发送欢迎消息。这是我智能电视上的代码-
//var wsUri = "wss://echo.websocket.org/";
var wsUri = "ws://192.168.1.116:9898/";
//var output;
var webSocketObj={};
webSocketObj.init = function()
{
//output = document.getElementById("output");
this.testWebSocket();
};
webSocketObj.testWebSocket = function()
{
websocket = new WebSocket(wsUri);
websocket.onopen = function(evt) { onOpen(evt); };
websocket.onclose = function(evt) { onClose(evt); };
websocket.onmessage = function(evt) { onMessage(evt); };
websocket.onerror = function(evt) { onError(evt); };
};
function onOpen(evt)
{
writeToScreen("CONNECTED");
doSend("WebSocket rocks");
}
function onClose(evt)
{
writeToScreen("DISCONNECTED");
}
function onMessage(evt)
{
writeToScreen('<span style="color: blue;">RESPONSE: ' + evt.data+'</span>');
websocket.close();
}
function onError(evt)
{
writeToScreen('<span style="color: red;">ERROR:</span> ' + evt.data);
}
function doSend(message)
{
writeToScreen("SENT: " + message);
websocket.send(message);
}
function writeToScreen(message)
{
/* var pre = document.createElement("p");
pre.style.wordWrap = "break-word";
pre.innerHTML = message;
output.appendChild(pre);*/
alert('SOCKET HELPER SAYS : '+message);
}
我有一个按钮,我在按钮单击时调用 webSocketObj.init() 。
didReadData
我的服务器日志:
客户说:GET / HTTP/1.1
来自 SmartTv 的日志:
[JS ALERT]: Scenewebsocket.handleKeyDown(29443)
[JS ERROR]:
File: file://
Line No: 0
Error Detail:
[JS ALERT]: SOCKET HELPER SAYS : DISCONNECTED
我还尝试将消息从服务器回显到智能电视。这次我得到了日志
Client says : GET / HTTP/1.1
Client says : Upgrade: WebSocket
Client says : Connection: Upgrade
Client says : Host: 192.168.1.116:9898
Client says : Origin: file://
Client says : Sec-WebSocket-Key1: 1504l73 8Ew/J 4 ,L7W6
Client says : Sec-WebSocket-Key2: TK2 81d A64Bo7 118 0
我知道我做错了什么……这是什么?请帮忙。