socket.io客户端库在哪里?
据我所见,如果node.js
没有被用作web服务器,我们不知道在哪里定位socket.io
的客户端脚本。 我find了一个客户端文件的完整目录,但是我需要它们的组合版本(比如在使用node.js web服务器时提供服务)。 有任何想法吗?
socket.io.js就是你要放入你的客户端html的东西。 就像是:
<script type="text/javascript" src="socket.io.js"></script>
我的脚本位于:
/usr/local/lib/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js
将该文件复制到您希望服务器为其提供服务的位置。
我发现这样做的最好方法是使用凉亭 。
bower install socket.io-client --save
并在您的应用程序的HTML中包含以下内容:
<script src="/bower_components/socket.io-client/socket.io.js"></script>
这样,你可以像对待任何其他托pipe包一样对待你的客户端的socket.io部分。
我认为更好和正确的方法是从这个url加载它
src="/socket.io/socket.io.js"
在socket.io运行的域上。 这个解决scheme的好处是,如果你更新你的socket.io npm模块,你的客户端文件也会被更新,你不必每次都手动复制它。
我在Matt Way的回答中使用了bower,而且效果很好,但是库本身没有自己的bower.json
文件。
这意味着我正在使用的bower-main-files
Gulp插件来查找我的依赖关系的JS文件没有插入到socket.io中,并且在加载页面时出现错误。 为我的项目的bower.json
添加一个覆盖工作解决了这个问题。
先用凉亭安装库:
bower install socket.io-client --save
然后将重写添加到您的项目的bower.json中:
"overrides": { "socket.io-client": { "main": ["socket.io.js"] } }
对于运行wiredep并获取“socket.io-客户端没有注入到您的文件”的每个人。 错误:
像这样修改wiredep任务:
wiredep: { .. main: { .. overrides: { 'socket.io-client': { main: 'socket.io.js' } } }
如果您使用的是bower.json,请添加socket.io-client依赖项。
"socket.io-client": "0.9.x"
然后运行bower install来下载socket.io-client。
然后在HTML中添加脚本标签。
<script src="bower_components/socket.io-client/dist/socket.io.min.js"></script>
我创build了一个可以像这样安装的bower兼容的socket.io-client:
bower install sio-client --save
或用于开发用途:
bower install sio-client --save-dev
链接回购
如果你使用https://github.com/btford/angular-socket-io请确保你的index.html是这样的:;
<!-- https://raw.githubusercontent.com/socketio/socket.io-client/master/socket.io.js --> <script src="socket.io.js"></script> <!-- build:js({client,node_modules}) app/vendor.js --> <!-- bower:js --> <script src="bower_components/jquery/dist/jquery.js"></script> <script src="bower_components/angular/angular.js"></script> <!-- ...... --> <script src="bower_components/angular-socket-io/socket.js"></script> <!-- endbower --> <!-- endbuild --> <script type="text/javascript" charset="utf-8"> angular.module('myapp', [ // ... 'btford.socket-io' ]); // do your angular/socket stuff </script>