socket.io客户端库在哪里?

时间:2011-12-16 01:07:53

标签: node.js client socket.io

据我所知,如果socket.io未用作Web服务器,则无法解释我们在node.js找到客户端脚本的位置。我找到了一个完整的客户端文件目录,但我需要它们在组合版本中(就像使用node.js网络服务器时一样)。有什么想法吗?

8 个答案:

答案 0 :(得分:171)

我发现这样做的最好方法是使用bower

bower install socket.io-client --save

并在应用的HTML中包含以下内容:

<script src="/bower_components/socket.io-client/socket.io.js"></script>

通过这种方式,您可以像处理任何其他托管包一样处理客户端的socket.io部分。

答案 1 :(得分:67)

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

将该文件复制到您希望服务器为其提供服务的位置。

答案 2 :(得分:25)

我认为更好更正确的方法是从此网址加载

src="/socket.io/socket.io.js" 

在socket.io运行的域上。这个解决方案的积极意义在于,如果更新socket.io npm模块,您的客户端文件也会更新,并且您不必每次都手动复制它。

答案 3 :(得分:8)

我按照Matt Way的回答建议使用了凉亭,这很有效,但是图书馆本身并没有自己的bower.json文件。

这意味着我用bower-main-files Gulp插件来查找我的依赖关系&#39; JS文件没有拉入socket.io,我在页面加载时遇到错误。添加覆盖到我的项目的bower.json解决了这个问题。

首先使用bower安装库:

bower install socket.io-client --save

然后将覆盖添加到项目的bower.json:

"overrides": {
  "socket.io-client": {
    "main": ["socket.io.js"]
  }
}

答案 4 :(得分:6)

对于每个运行wiredep并获取“socket.io-client未注入您的文件的人”。错误:

修改您的wiredep任务,如下所示:

wiredep: {
  ..
  main: {
    ..
    overrides: {
      'socket.io-client': {
        main: 'socket.io.js'
      }
    }
  }

答案 5 :(得分:2)

如果您使用的是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>

答案 6 :(得分:2)

我创建了一个兼容bower的socket.io-client,可以像这样安装:

bower install sio-client --save

或用于开发用途:

bower install sio-client --save-dev

链接到repo

答案 7 :(得分:0)

如果您使用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>