据我所见,如果不使用node.js作为Web服务器,目前没有关于在何处定位
socket.io
客户端脚本的解释。我找到了一个完整的客户端文件目录,但需要它们结合成一个版本(就像在使用node.js Web服务器时提供的一样)。有什么想法吗?我发现实现这个的最佳方式是使用bower。
bower install socket.io-client --save
在您的应用程序HTML中添加以下内容:
<script src="/bower_components/socket.io-client/socket.io.js"></script>
这样,您就可以像对待任何其他受管理的软件包一样对待客户端的socket.io部分。
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
将那个文件复制到您希望服务器提供服务的位置。
我认为更好、更适当的方式是从这个URL加载它。
src="/socket.io/socket.io.js"
在运行Socket.io的域上。这种解决方案的积极之处在于,如果您更新了socket.io npm模块,则客户端文件也会得到更新,无需手动每次复制。
我按照Matt Way的建议使用了bower,效果很好,但是库本身没有自己的文件。
这意味着我使用的bower-main-files Gulp插件无法引入socket.io依赖的JS文件,导致页面加载时出现错误。在我的项目的bower.json中添加一个override解决了这个问题。
首先使用bower安装库:
bower install socket.io-client --save
"overrides": {
"socket.io-client": {
"main": ["socket.io.js"]
}
}
wiredep: {
..
main: {
..
overrides: {
'socket.io-client': {
main: 'socket.io.js'
}
}
}
socket.io-client
默认情况下缺少了什么? - Nitzan
bower install sio-client --save
bower install sio-client --save-dev
链接到代码库
。"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>
<!-- 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>
bower_components/socket.io-client/dist/socket.io.min.js
。 - mikermcneilbower info socket.io-client
,看起来它在 bower 中没有注册 bower.json(因此默认在 bower 存储库中创建了一个)。你可以 fork 该项目,创建一个 bower.json,并注册自己的 bower 版本。创建一个包含 bower.json 的 pull request。创建一个问题并查看是否有贡献者可以创建它。 - Matt Way