node.js - 我可以在我的 Chrome 打包应用程序中使用 socket.io 吗?

标签 node.js google-chrome socket.io google-chrome-app

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

这似乎很难(我还没有找到任何文档解释如何做到这一点)。 我首先尝试简单地加载从我的 NodeJS (http://localhost:8080/socket.io/socket.io.js) 提供的 socket.io.js 脚本。但 CSP 禁止这样做。

然后我找到the socket.io-client .我对英语不是很熟悉,但我知道它涉及在没有服务器的情况下加载 socket.io 客户端脚本,对吧?

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

Uncaught Error: failed to require "socket.io" from "root"

我迷路了... 在尝试更进一步之前,我只是问自己 socket.io 是否是在我的打包应用程序和 Nodejs 之间建立对话的好主意。

如果是,我如何在客户端加载和运行它?

编辑: 我想知道我是否必须使用经典的 Websocket 而不是 socket.io。我知道它适用于打包的应用程序,如图所示 here但是开发 socket.io 给我们的相同功能(传递对象)需要更多时间。

谢谢你的帮助:)

最佳答案

试试这个,从 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> 

如果你不介意路径太长,也可以直接包含它。

关于node.js - 我可以在我的 Chrome 打包应用程序中使用 socket.io 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20593679/

相关文章:

javascript - 为什么 Node.js 使用 try/catch 时会收到针对我的代码的附加错误消息?

javascript - 如何在node.js中比较特定场景的两天时间

javascript - 当图像被覆盖时,node.js 无法提供图像

在 FF 和 IE7/8/9 上工作时,带有淡入淡出的 Javascript slider 在 chrome 上失败

javascript - 为什么 Chrome 会在 "pre"标签中加载我的 HTML?

javascript - react 状态 Hook 设置回调触发两次的任何原因?

node.js - 使用 Node 服务器连接到 MongoDB 时的警告

html - #primary div 在 Chrome 中禁用#secondary div

javascript - 使用套接字 io 将数据传递到 html 表

go - 使用 Golang 通过 Socket.io 传输音频