मेरे पास PHP के साथ सॉकेट आईओ का उपयोग करने के संबंध में कुछ प्रश्न हैं और ऐसे में, मैं नोडजेस/सॉकेट आईओओ में नया हूं इसलिए मुझे बहुत कम पता है, मैंने पिछले कुछ दिनों में इसका उपयोग करना शुरू कर दिया है और मैं उस बिंदु पर जा रहा हूं मैं इसे अपनी वेबसाइट पर कार्यान्वित कर दूंगा (अभी तक मैं अभी छोटे परीक्षण उदाहरण बना रहा हूं)।नोड.जेएस + सॉकेट आईओ + अपाचे + PHP यूआरएल से पोर्ट हटा दें?
प्रश्न: वर्तमान में मुझे इसे देखने के लिए अपने स्थानीयहोस्ट में बंदरगाह जोड़ना है और यह काम करना है, जाहिर है, जब मैं लाइव वेबसाइट पर हूं तो मैं यह नहीं कर सकता, और जब मैं उपयोग करता हूं तो मैं यह भी नहीं कर सकता PHP पेज (केवल एचटीएमएल के साथ उदाहरण कर रहे हैं) यदि मैं अपने सॉकेट आईओ सर्वर के लिए पोर्ट 4000 का उपयोग कर रहा हूं तो मुझे यहां जाना होगा: लोकलहोस्ट: 4000, हालांकि मुझे यहां जाने में सक्षम होना चाहिए: localhost: 8888/mysitefolder (8888 मेरे एमएएमपी के लिए बंदरगाह है, PHP और सबकुछ के लिए) मैंने उन प्रश्नों में देखा है जहां लोगों ने इसे हल किया है लेकिन मैं इसे अपने स्वयं के लिए काम करने में असमर्थ हूं।
chat.js
var app = require('express').createServer(),
io = require('socket.io').listen(app);
app.listen(4000);
var users = [];
app.get('/', function (req, res) {
res.sendfile(__dirname + '/index.html');
});
io.sockets.on('connection', function (socket) {
socket.emit('connected');
socket.on('userID', function (userID) {
users.push(userID);
});
socket.on('message', function (message) {
socket.broadcast.emit('message-response', { data: message});
});
});
index.html
<title>Testing</title>
<script src="/socket.io/socket.io.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
function mktime(){
var newDate = new Date;
return newDate.getTime();
}
function appendMessage(data)
{
$("body").append(data+"<br />");
}
var socket = io.connect('http://localhost:4000');
socket.on('connected', function() {
//select id from database in real environment
socket.emit("userID", mktime());
});
socket.on('message-response', function (message) {
appendMessage(message.data);
});
$(document).ready(function(){
$('#input').keypress(function(event) {
if (event.keyCode != 13) return;
var msg = $("#input").val();
if (msg) {
socket.emit('message', msg);
appendMessage(msg);
$("#input").val('').focus();
}
});
});
</script>
<body>
<input type="text" id="input"><br>
</body>
स्वतः डिटेक्ट किया जाएगा आप 'मैं पर जाने के लिए सक्षम होना चाहिए: स्थानीय होस्ट: 8888/mysitefolder' से क्या मतलब है? आपको बस इतना करना है कि जेएस फ़ाइल को सही तरीके से संदर्भित करना है: "localhost: 4000/socket.io/socket.io.js" और यही वह है। आपको एक्सप्रेस सर्वर की भी आवश्यकता नहीं है, आप जेएस कोड के साथ इंडेक्स फ़ाइल की सेवा कर सकते हैं। – alessioalex
अच्छी लोकहोस्ट: 8888 वह जगह है जहां एमएएमपी चल रहा है, PHP और सबकुछ के लिए, mysitefolder केवल php फ़ाइलों के काम के लिए फ़ोल्डर है। भी, मैं अपनी दो फाइलों में क्या बदलूं? मैंने बस कोशिश की और एक त्रुटि है। (जैसे मैंने कहा, मैं इसके साथ नया हूं, इसलिए मुझे यकीन नहीं है कि सब कुछ कैसे काम करता है) –
कभी नहीं, मुझे यह काम मिल गया। धन्यवाद। –