Where is the socket.io client library?

后端 未结 8 1620
佛祖请我去吃肉
佛祖请我去吃肉 2020-12-13 23:40

As far as I have seen, there is no explanation as to where we are to locate the client side script for socket.io if node.js is not used as the web

相关标签:
8条回答
  • 2020-12-14 00:00

    The best way I have found to do this is to use bower.

    bower install socket.io-client --save
    

    and include the following in your app's HTML:

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

    That way you can treat the socket.io part of your client the same way you treat any other managed package.

    0 讨论(0)
  • 2020-12-14 00:01

    For everyone who runs wiredep and gets the "socket.io-client was not injected in your file." error:

    Modify your wiredep task like this:

    wiredep: {
      ..
      main: {
        ..
        overrides: {
          'socket.io-client': {
            main: 'socket.io.js'
          }
        }
      }
    
    0 讨论(0)
  • 2020-12-14 00:01

    if you use https://github.com/btford/angular-socket-io make sure to have your index.html like this:

    <!-- 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>
    
    0 讨论(0)
  • 2020-12-14 00:03

    socket.io.js is what you're going to put into your client-side html. Something like:

    <script type="text/javascript" src="socket.io.js"></script>
    

    my script is located:

    /usr/local/lib/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js
    

    copy that file to where you want your server to serve it.

    0 讨论(0)
  • 2020-12-14 00:03

    If you are using bower.json, add the socket.io-client dependency.

    "socket.io-client": "0.9.x"
    

    Then run bower install to download socket.io-client.

    Then add the script tag in your HTML.

    <script src="bower_components/socket.io-client/dist/socket.io.min.js"></script>
    
    0 讨论(0)
  • 2020-12-14 00:05

    I used bower as suggested in Matt Way's answer, and that worked great, but then the library itself didn't have its own bower.json file.

    This meant that the bower-main-files Gulp plugin that I'm using to find my dependencies' JS files did not pull in socket.io, and I was getting an error on page load. Adding an override to my project's bower.json worked around the issue.

    First install the library with bower:

    bower install socket.io-client --save
    

    Then add the override to your project's bower.json:

    "overrides": {
      "socket.io-client": {
        "main": ["socket.io.js"]
      }
    }
    
    0 讨论(0)
提交回复
热议问题