2013-05-31 8 views
5

मैं php + mysql का उपयोग कर एक अपॉइंटमेंट सेंटर वेब एप्लिकेशन विकसित कर रहा हूं। जो मैं वर्तमान में करने की कोशिश कर रहा हूं वह अधिसूचना भेजना है जब वेब सर्वर से ग्राहक/उपयोगकर्ता धनुषियों को तृतीय पक्ष पुशर के बिना और jQuery सेटइंटरवाल AJAX अनुरोध के बिना एक अपॉइंटमेंट किया गया है। मुझे लगता है कि SetInterval & AJAX एक खराब दृष्टिकोण है क्योंकि क्लाइंट और सर्वर के बीच बहुत अधिक ट्रैफ़िक होगा।वेब सर्वर से क्लाइंट bowers के लिए वास्तविक समय अधिसूचना

मैं सेटइंटरवाल के साथ सर्वर को मतदान किए बिना अधिसूचनाओं को कैसे कार्यान्वित कर सकता हूं?

+0

आप एक ही प्रश्न [यहां] (http://stackoverflow.com/questions/16524727/how-to-output-in-realtime-when-number-is-change/16531635#16531635) पर मेरा उत्तर पढ़ सकते हैं। । मुझे उम्मीद है यह मदद करेगा। ओह और आपको नोड सर्वर या कुछ भी करने की आवश्यकता नहीं होगी। – SergioMSCosta

उत्तर

13

आप इसे नोडजेज़ का उपयोग करके कर सकते हैं। नोडजेएस आपके सर्वर पर जावास्क्रिप्ट है जो वास्तविक समय में कनेक्ट क्लाइंट को सामग्री को धक्का देता है।

इसका उपयोग करना और सेटअप करना वास्तव में आसान है। आपको वास्तविक समय ऐप के लिए समर्पित सर्वर की आवश्यकता है, मैं http://nodejitsu.com का उपयोग करता हूं।

सर्वर साइड

var app = require('http').createServer(handler) 
, io = require('socket.io').listen(app) 
, url = require('url') 

app.listen(8080); 

function handler (req, res) { 
// parse URL 
var requestURL = url.parse(req.url, true); 

// if there is a message, send it 
if(requestURL.query.message) 
    sendMessage(decodeURI(requestURL.query.message)); 

// end the response 
res.writeHead(200, {'Content-Type': 'text/plain'}); 
res.end(""); 
} 

function sendMessage(message) { 
io.sockets.emit('notification', {'message': message}); 
} 

क्लाइंट साइड

<script src="socket.io.min.js"></script> 
<script> 
var socket = io.connect('http://localhost:8080'); 
socket.on('notification', function (data) { 
    console.log(data.message); 
}); 
</script> 

मैं भविष्य पाठकों

+1

मुझे लगता है कि node.js मुझे क्या चाहिए, धन्यवाद (: –

+0

@MDDY मैं बस इसकी शुरुआत में हूं। कृपया इस पर सहायता करें। जहां से मैं 'socket.io.min.js' फ़ाइल प्राप्त कर सकता हूं? क्या आप प्रदान कर सकते हैं दिए गए उत्तर पर कुछ और विवरण। –

2

मुझे लगता है यू चयन कर रहे हैं के लिए इस सवाल का जवाब पूरा करने के लिए नीचे दिए गए @intivev से उदाहरण का उपयोग करने के लिए आसान जोड़ा इस उद्देश्य (PHP) के लिए गलत भाषा, PHP में ऐसा करने का कोई तरीका हो सकता है, लेकिन मुझे यकीन है कि यह एक मुड़ वाला होगा। मैं इसे का उपयोग कर के रूप में इस उद्देश्य के लिए Node.js का उपयोग करना चाहिये आप बहुत सरल तरीके से ग्राहक के लिए सूचनाएं धक्का पूरा कर सकते हैं

सर्वर साइड

var app = require('http').createServer(handler) 
, io = require('socket.io').listen(app) 
, url = require('url') 

app.listen(8080); 

function handler (req, res) { 
// parse URL 
var requestURL = url.parse(req.url, true); 

// if there is a message, send it 
if(requestURL.query.message) 
    sendMessage(decodeURI(requestURL.query.message)); 

// end the response 
res.writeHead(200, {'Content-Type': 'text/plain'}); 
res.end(""); 
} 

function sendMessage(message) { 
io.sockets.emit('notification', {'message': message}); 
} 

क्लाइंट साइड

<script src="socket.io.min.js"></script> 
<script> 
var socket = io.connect('http://localhost:8080'); 
socket.on('notification', function (data) { 
    console.log(data.message); 
}); 
</script> 

तो तुम अपने बहुत देखते हैं अगर आप इसके लिए उपयुक्त भाषा का उपयोग करते हैं तो

4

आप इसके लिए वेबस्केट का उपयोग कर सकते हैं, Ratchet एक PHP कार्यान्वयन है जो शीर्ष पर बनाया गया है React library। मैंने उत्पादन पुस्तकालयों में इन दोनों पुस्तकालयों का उपयोग किया है और उनके साथ खुश होने से अधिक हैं।

हां, node.js का उपयोग करना एक विकल्प है और शायद एक बेहतर एक - आपकी वर्तमान स्थिति पर निर्भर है।

एंथनी।

+0

जब वेबसाईट की बात आती है, निश्चित रूप से node.js बेहतर है –

संबंधित मुद्दे