Development Tip

socket.io 클라이언트 라이브러리는 어디에 있습니까?

yourdevel 2020. 10. 17. 12:28
반응형

socket.io 클라이언트 라이브러리는 어디에 있습니까?


내가 본 한, 웹 서버로 사용되지 않는 socket.io경우 node.js대한 클라이언트 측 스크립트의 위치에 대한 설명 이 없습니다. 클라이언트 측 파일의 전체 디렉토리를 찾았지만 결합 된 버전으로 필요합니다 (예 : node.js 웹 서버를 사용할 때 제공됨). 어떤 아이디어?


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 부분을 처리 할 수 ​​있습니다.


이 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'
      }
    }
  }

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>

I have created a bower compatible socket.io-client that can be install like this :

bower install sio-client --save

or for development usage :

bower install sio-client --save-dev

link to repo


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>

참고URL : https://stackoverflow.com/questions/8528681/where-is-the-socket-io-client-library

반응형