Node.js 我可以在Chrome套装应用程序中使用socket.io吗?
我需要在Chrome打包应用程序和NodeJS脚本之间建立socket.io连接。我熟悉NodeJS和socket.io,但不熟悉Chrome打包的应用程序 这似乎很难(我还没有找到任何医生解释如何做到这一点)。 我首先尝试简单地加载NodeJS提供的socket.io.js脚本(Node.js 我可以在Chrome套装应用程序中使用socket.io吗?,node.js,google-chrome,socket.io,google-chrome-app,Node.js,Google Chrome,Socket.io,Google Chrome App,我需要在Chrome打包应用程序和NodeJS脚本之间建立socket.io连接。我熟悉NodeJS和socket.io,但不熟悉Chrome打包的应用程序 这似乎很难(我还没有找到任何医生解释如何做到这一点)。 我首先尝试简单地加载NodeJS提供的socket.io.js脚本(http://localhost:8080/socket.io/socket.io.js)。但是CSP是禁止的 然后我发现。我对英语不是很熟悉,但我知道它处理的是在没有服务器的情况下加载socket.io客户端脚本,对
http://localhost:8080/socket.io/socket.io.js
)。但是CSP是禁止的
然后我发现。我对英语不是很熟悉,但我知道它处理的是在没有服务器的情况下加载socket.io客户端脚本,对吗
因此,我尝试在我的background.html页面中加载脚本“socket.io client/socket.io client.js”,但chrome向我发送了一个错误:
未捕获错误:无法从“根”请求“socket.io”
我迷路了。。。
在进一步讨论之前,我只想问问自己,在我打包的应用程序和Nodejs之间建立一个对话框是否是一个好主意
如果是,如何在客户端加载和运行它
编辑:
我想知道我是否必须使用经典的Websocket而不是socket.io。我知道如图所示,它可以与打包的应用程序一起使用,但开发socket.io提供给我们的相同功能需要更多的时间(通过objet)
谢谢您的帮助:)试试这个,从node_模块获取socket.io.js:
$ find . -name socket.io.js
./node_modules/socket.io-client/dist/socket.io.js
将其与客户端LIB一起复制,然后按如下方式包括:
<script type="text/javascript" src="js/libs/socket.io.js"></script>
如果你不介意漫长的道路,也可以直接包括在内 不要在Chrome应用程序中使用socket.io进行低级套接字通信。使用chrome.sockets.tcp或chrome.sockets.tcpServer WebSockets是一种特殊的套接字协议,HTML5 WebSockets API在Chrome应用程序中运行良好。(注意:WebSocket不是访问HTTP站点的一种方式,但它是一种更新得多的协议,仅适用于专门编程用于处理WebSocket客户端的服务器。)
对于HTTP,您不必使用chrome.sockets.tcp。你很可能会发现旧的XMLHttpRequest可以做你想做的任何事情。你看到这篇文章了吗?是的,我现在看到了所有这些。但对于Chrome打包的应用程序,我无法加载外部脚本以确保安全。我有一个应用程序,其中手动包含socket.io.js客户端,它可以正常工作,请参见下面的内容。这很可能也适用于chrome web应用程序