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
'Development Tip' 카테고리의 다른 글
Intellij의 Java 프로젝트에서 "심볼을 찾을 수 없음"이 표시됨 (0) | 2020.10.17 |
---|---|
암시 적으로 'Int'형식을 'T'로 변환 할 수 없습니다. (0) | 2020.10.17 |
Facebook 앱에서와 같이 프로그래밍 방식으로 설정을 여는 방법은 무엇입니까? (0) | 2020.10.17 |
iPhone xib를 iPad xib로 변환 하시겠습니까? (0) | 2020.10.17 |
새로 추가 된 dom 요소에 바인딩되지 않는 jQuery 함수 (0) | 2020.10.17 |