我可以在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可以做你想做的一切。