जहां तक मैंने देखा है, socket.io
के लिए क्लाइंट साइड स्क्रिप्ट का पता लगाने के लिए हमें कोई स्पष्टीकरण नहीं है कि node.js
वेब सर्वर के रूप में उपयोग नहीं किया जाता है। मुझे क्लाइंट साइड फाइलों की पूरी निर्देशिका मिली है, लेकिन मुझे उन्हें एक संयुक्त संस्करण में चाहिए (जैसे यह node.js webs सर्वर का उपयोग करते समय परोसा जाता है)। कोई विचार?socket.io क्लाइंट लाइब्रेरी कहां है?
उत्तर
socket.io.js वह है जो आप अपने क्लाइंट-साइड एचटीएमएल में डाल रहे हैं। की तरह कुछ:
<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
जहां आप अपने सर्वर यह सेवा करना चाहते करने के लिए नकल है कि फाइल।
मुझे लगता है कि बेहतर और उचित तरीके से डोमेन जहां रन socket.io पर इस यूआरएल
src="/socket.io/socket.io.js"
से लोड करने के लिए है। इस समाधान पर सकारात्मक क्या है कि यदि आप अपना सॉकेट.io एनपीएम मॉड्यूल अपडेट करते हैं, तो आपकी क्लाइंट फ़ाइल भी अपडेट हो जाती है और आपको हर बार इसे मैन्युअल रूप से कॉपी करने की आवश्यकता नहीं होती है।
यह सबसे अच्छा जवाब आईएमओ है। यह क्लाइंट-साइड का अनुशंसित उपयोग सॉकेट.आईओ दस्तावेज से शामिल है। यह बताता है कि @ कैपाज के फायदे के साथ-साथ यह कहां से आता है। –
यह केवल सबसे अच्छा समाधान है IF Node.js उस वेबसाइट परोसता है जहां आप कनेक्शन होना चाहते हैं। यह वास्तव में बड़ा 'आईएफ' है। –
मुझे ऐसा करने का सबसे अच्छा तरीका bower का उपयोग करना है।
<script src="/bower_components/socket.io-client/socket.io.js"></script>
इस तरह आप अपने ग्राहक के socket.io हिस्सा उसी तरह आप किसी भी अन्य कामयाब पैकेज इलाज का इलाज कर सकते हैं:
bower install socket.io-client --save
और अपने अनुप्रयोग के HTML में निम्न शामिल हैं।
यह सबसे अच्छा समाधान है, धन्यवाद! यदि यह किसी और की सहायता करता है, तो minified socket.io क्लाइंट 'bower_components/socket.io-client/dist/socket.io.min.js' – mikermcneil
bower ftw में स्थित है। –
"bowerInstall: target" (bowerInstall) कार्य चलाना सॉकेट.ओ-क्लाइंट को आपकी फ़ाइल में इंजेक्शन नहीं दिया गया था। कृपया अपनी इच्छित फ़ाइल के लिए "ग्राहक/bower_components/socket.io-client" में एक नज़र डालें, फिर मैन्युअल रूप से इसे अपनी फ़ाइल में शामिल करें। – smk
यदि आप bower.json का उपयोग कर रहे हैं, तो socket.io-client निर्भरता जोड़ें।
"socket.io-client": "0.9.x"
फिर बोवर स्थापित socket.io-ग्राहक डाउनलोड करने के लिए चलाते हैं।
फिर अपने HTML में स्क्रिप्ट टैग जोड़ें।
<script src="bower_components/socket.io-client/dist/socket.io.min.js"></script>
जो कोई wiredep चलाता है और हो जाता है के लिए "socket.io-ग्राहक आपकी फ़ाइल में इंजेक्शन नहीं था।" त्रुटि:
इस तरह से अपनी wiredep कार्य संशोधित करें:
wiredep: {
..
main: {
..
overrides: {
'socket.io-client': {
main: 'socket.io.js'
}
}
}
@ के-डी ने इसे हल किया, लेकिन वह क्यों है? डिफ़ॉल्ट रूप से 'socket.io-client' के साथ क्या नहीं होता है? – Nitzankin
क्योंकि वे बोवर का समर्थन नहीं करना चाहते हैं। –
मैं एक बोवर संगत सॉकेट बनाया है।कब-ग्राहक है कि इस तरह स्थापित किया जा सकता है:
bower install sio-client --save
या विकास के उपयोग के लिए:
bower install sio-client --save-dev
लिंक repo
क्या आप कोई अपडेट जारी करेंगे? सॉकेटियो अब 1.3.5 पर है। कुछ कारणों से आपका बहुत धीमा और घबराहट है। –
को अपडेट किया गया 1.3.5 –
शायद बॉवर क्लाइंट संस्करण के अपडेट को स्वचालित करने का कोई तरीका है? – Diogyn
मैं बोवर इस्तेमाल किया करने के लिए सुझाव दिया के रूप में मैट वे का जवाब, और यह बहुत अच्छा काम किया, लेकिन फिर लाइब्रेरी इज़ेल एफ की अपनी bower.json
फ़ाइल नहीं थी।
इसका मतलब यह था कि bower-main-files
गुलप प्लगइन जो मैं अपनी निर्भरताओं की जेएस फाइलों को ढूंढने के लिए उपयोग कर रहा हूं, socket.io में नहीं खींच पाया, और मुझे पेज लोड पर एक त्रुटि मिल रही थी। मेरे प्रोजेक्ट के bower.json
पर ओवरराइड जोड़ने से इस मुद्दे पर काम किया गया।
पहले बोवर साथ पुस्तकालय स्थापित:
bower install socket.io-client --save
फिर अपने प्रोजेक्ट की bower.json को ओवरराइड जोड़ें:
"overrides": {
"socket.io-client": {
"main": ["socket.io.js"]
}
}
अगर आप 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>
बहुत बढ़िया, धन्यवाद। यह पता नहीं लगा सका कि उस निर्देशिका में निर्देशिका की उस गड़बड़ी में फ़ाइल कहां थी :) –
हाँ, यह तार्किक नहीं है। Socket.io का उपयोग कर बहुत से लोग उससे पूछते हैं। सबसे अच्छा :-) – EhevuTov
धन्यवाद आदमी! यह अजीब बात है कि दस्तावेज़ों या नमूने में इसके बारे में कोई जानकारी नहीं है। – Peter