React Native Mobile App与React.js Hbbtv App之间的通信



你能解释一下如何在电视中的Hbbtv React应用程序和React Native中的移动应用程序之间建立连接吗?我在React Native Mobile App中实现了SSDP客户端,以寻找SSDP服务器(这应该在电视上实现(。然后接收该服务器的IP地址(类似于DIAL体系结构(。服务器也在创建WebSocket服务器。这个服务器应该启动用React.js编写的Hbbtv应用程序。现在我可以通过这个服务器将消息从移动应用程序发送到Hbbtv React应用程序,但我不知道如何在我的电视上实现这种SSDP+WebSocket服务器。

此项目https://github.com/fraunhoferfokus/cordova-plugin-hbbtv提供了一个很好的例子,可以回答您的问题。这是一个适用于Android的cordova插件,但它为您提供了如何实现客户端框架(如React Native(的概述。中的Hello World Mobile应用程序https://github.com/fraunhoferfokus/cordova-plugin-hbbtv-helloapp/提供了一个使用插件在电视上发现和启动的示例。

HbbTV应用程序是使用Web技术开发的,如React.js,并使用WebSocket建立与HbbTV终端上运行的本地WebSocket服务器的连接。此文件夹https://github.com/fraunhoferfokus/cordova-plugin-hbbtv-helloapp/tree/master/www提供了使用CS功能的简单HbbTV应用程序的示例。您可以将其作为react.js的参考https://github.com/fraunhoferfokus/cordova-plugin-hbbtv-helloapp/blob/master/www/js/cs-app.js.我希望这能有所帮助。

若要成功通信,Companion Screen应用程序应与HbbTV终端(电视机(位于同一家庭网络上。

终端(电视机(实现服务器提供端点,为客户端提供Websocket协议的服务器端(终端上的HbbTV®应用程序和Companion Screen应用程序(。

一旦终端(电视机(上的HbbTV®应用程序调用了HbbTVCSManager嵌入对象的getApp2AppLocalBaseURL((方法,服务器应能够接受连接,直到应用程序退出。请参阅:https://developer.hbbtv.org/references/apis/defined-javascript-apis/companion-screen-discovery-apis/

终端(电视机(按照ETSI TS 102 796标准第14.5.3条中定义的方式处理来自客户端(HbbTV®应用程序和Companion Screen应用程序(的连接请求,并应用ETSI TS 102796标准中第14.5.4条定义的配对规则来确定是否对来自两个客户端的连接进行配对。然后,如ETSI TS 102 796标准第14.5.5条所定义,它充当中继,以便在配对的两个客户端连接之间中继消息。

简而言之,终端(电视机(上的HbbTV®应用程序连接到终端(电视(上的服务器,连接进入等待状态。此时,Companion Screen应用程序应连接到终端上的服务器,并且连接进入等待状态。终端(电视机(应根据以下规则配对两个等待连接:

  • 一个等待连接应在本地服务端点上(以及因此可以推断为来自HbbTV®应用程序客户端(
  • 另一个等待连接应在远程服务上端点(因此可以推断为来自远程客户端,例如Companion Screen应用程序(
  • 客户端握手请求中使用的资源名称的应用程序端点部分应在两个等待连接之间匹配

这个";战术;应该会给你想要的结果。

最新更新