据我所知,对于socket.io
如果node.js
不用作Web服务器的客户端脚本,我们没有任何解释。我已经找到了客户端文件的完整目录,但是我需要它们的组合版本(例如在使用node.js网站服务器时提供的版本)。有任何想法吗?
据我所知,对于socket.io
如果node.js
不用作Web服务器的客户端脚本,我们没有任何解释。我已经找到了客户端文件的完整目录,但是我需要它们的组合版本(例如在使用node.js网站服务器时提供的版本)。有任何想法吗?
Answers:
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。
bower install socket.io-client --save
并在您应用的HTML中添加以下内容:
<script src="/bower_components/socket.io-client/socket.io.js"></script>
这样,您可以像对待任何其他托管程序包一样对待客户端的socket.io部分。
bower_components/socket.io-client/dist/socket.io.min.js
bower info socket.io-client
,看来它已注册为没有bower.json的bower(因此在bower存储库中创建了默认值)。您可以分叉项目,创建bower.json并注册自己的Bower版本。创建一个包含bower.json的拉取请求。创建一个问题,看看贡献者是否可以创建它。
我认为更好和适当的方法是从此url加载它
src="/socket.io/socket.io.js"
在运行socket.io的域上。此解决方案的积极之处在于,如果更新了socket.io npm模块,则客户端文件也会被更新,您不必每次都手动复制它。
我按照Matt Way的答案中的建议使用了Bower,效果很好,但随后库本身没有自己的库 bower.json
文件。
这意味着bower-main-files
我用来查找依赖项的JS文件的Gulp插件没有拉入socket.io,并且页面加载时出现错误。bower.json
解决此问题的方法是在我的项目中添加替代项。
首先使用bower安装该库:
bower install socket.io-client --save
然后将替代项添加到项目的bower.json中:
"overrides": {
"socket.io-client": {
"main": ["socket.io.js"]
}
}
对于运行wiredep并获取“ socket.io-client未被注入您的文件”的每个人。错误:
像这样修改您的wiredep任务:
wiredep: {
..
main: {
..
overrides: {
'socket.io-client': {
main: 'socket.io.js'
}
}
}
socket.io-client
?
如果您使用的是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>
我创建了一个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>