我可以在Chrome Packaged应用程序中使用socket.io吗?

我需要Chrome Packaged应用程序和NodeJS脚本之间的socket.io连接。 我熟悉NodeJS和socket.io,但不是使用Chrome Packaged App。

这似乎是困难的(我没有find任何文件解释如何做到这一点)。 我首先尝试加载从我的NodeJS( http://localhost:8080/socket.io/socket.io.js )提供的socket.io.js脚本。 但这是CSP禁止的。

然后我find了socket.io-client 。 我不是很熟悉英文,但我知道它处理加载的socket.io客户端脚本没有服务器,对不对?

所以我尝试在我的background.html页面中加载脚本“socket.io-client / socket.io-client.js”,但是chrome发给我一个错误:

未捕获错误:未能要求“root”中的“socket.io”

我迷路了…在试图走得更远之前,我只是问自己,如果socket.io是在我的Packaged App和Nodejs之间build立对话的好主意。

如果是这样,我怎么能加载和运行它的客户端?

编辑 :我想知道如果我不得不使用经典的WebSocket而不是socket.io。 我知道它适用于Packaged App,如下所示,但是需要更多的时间才能开发出相同的functionsocket.io给我们(通过objet)。

感谢您的帮助 :)

试试这个,从node_modules中取得socket.io.js:

 $ find . -name socket.io.js ./node_modules/socket.io-client/dist/socket.io.js 

将它与客户端库一起复制,然后像这样包含它:

 <script type="text/javascript" src="js/libs/socket.io.js"></script> 

如果你不介意漫长的道路,也可以直接join。

请勿在Chrome Apps中使用socket.io进行底层套接字通信。 使用chrome.sockets.tcp或chrome.sockets.tcpServer。

WebSockets是一个特定的套接字协议,并且HTML5 WebSockets API在Chrome应用程序中正常工作。 (注意:WebSocket不是访问HTTP站点的一种方法,但是是一种更新的协议,只能用于专门编程处理WebSocket客户端的服务器。)

对于HTTP,您不必使用chrome.sockets.tcp。 你很可能会发现很好的XMLHttpRequest可以做你想做的一切。