Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 我可以在Chrome套装应用程序中使用socket.io吗?_Node.js_Google Chrome_Socket.io_Google Chrome App - Fatal编程技术网

Node.js 我可以在Chrome套装应用程序中使用socket.io吗?

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客户端脚本,对

我需要在Chrome打包应用程序和NodeJS脚本之间建立socket.io连接。我熟悉NodeJS和socket.io,但不熟悉Chrome打包的应用程序

这似乎很难(我还没有找到任何医生解释如何做到这一点)。 我首先尝试简单地加载NodeJS提供的socket.io.js脚本(
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应用程序