अपाचे PHP के साथ चल रहे node.js?




apache server-side (5)

मैं अपने सिर दौर node.js पाने की कोशिश कर रहा हूँ ...

मैं अपने लैंप स्थापित होने से बहुत खुश हूं क्योंकि यह वर्तमान में मेरी आवश्यकताओं को पूरा करता है। हालांकि मैं अपने PHP ऐप में कुछ वास्तविक समय की विशेषताएं जोड़ना चाहता हूं। जैसे वर्तमान में मेरी साइट में लॉग इन किए गए सभी उपयोगकर्ताओं और संभावित चैट सुविधाओं को दिखा रहा है।

मैं अपने PHP बैकएंड को प्रतिस्थापित नहीं करना चाहता, लेकिन मुझे स्केलेबल रीयल-टाइम समाधान चाहिए।

1. क्या मैं पूरे अनुप्रयोग सर्वर-साइड स्क्रिप्ट के पुनर्निर्माण के बिना अपनी जरूरतों को पूरा करने के लिए मिश्रण में node.js फेंक सकता हूं?

2. node.js मेरी 'चैट' और 'वर्तमान में लॉग इन' सुविधाओं की सेवा कैसे कर सकता है?

अपने विचार सुनकर बहुत अच्छा लगा!

डब्ल्यू

https://code.i-harness.com




मुझे संदेह है कि चैट के साथ-साथ लॉग इन सूची में अजाक्स के माध्यम से काम किया जाएगा।

चैट भाग Node.js में प्रोग्राम करना बहुत आसान होगा, नोड के लिए MySQL मॉड्यूल में से एक का उपयोग अपने मौजूदा डेटाबेस से कनेक्ट करने और क्वेरी लॉगिन जानकारी और ऐसे में करने के लिए करें और फिर Node.js के माध्यम से सभी वास्तविक चैटिंग करें, मैं आपको सलाह देता हूं Socket.io क्योंकि यह ब्राउज़र / Node.js Socket.io वास्तव में तुच्छ बनाता है, इससे आपको वास्तविक चैट तर्क पर ध्यान केंद्रित करने की अनुमति मिलनी चाहिए।

इसके अलावा, आप कुछ प्रेरणा के लिए, नोड.जेएस के "आधिकारिक" चैट डेमो पर एक नज़र डाल सकते हैं।

जहां तक ​​वर्तमान में ऑनलाइन हिस्सा जाता है, यह कार्यान्वित करना कभी आसान नहीं होता है क्योंकि आप जो भी कर सकते हैं, वह "पिछले एक्स मिनट में सक्रिय 5 उपयोगकर्ताओं" के साथ कुछ प्रदर्शित करना है।

निस्संदेह आप कुछ अजाक्स जोड़ सकते हैं जो चैट सर्वर से पूछताछ करते हैं और होमपेज पर उस से उपयोगकर्ता सूची प्रदर्शित करते हैं।

या आप पूरी तरह से पागल हो जाते हैं और प्रत्येक आगंतुक के लिए सॉकेट.ओ कनेक्शन स्थापित करते हैं और इस तरह की निगरानी करते हैं, हालांकि यह संदिग्ध है कि यह प्रयास के लायक है या नहीं।


मेरा सुझाव है कि आप socket.io के साथ node.js. के साथ उपयोग करें। http://socket.io/ से libs इंस्टॉल और डाउनलोड करें। आप इसे अपने अपाचे सर्वर के साथ कोई समस्या नहीं चला सकते हैं।

पहले नोड सर्वर बनाएं:

var http = require('http')
  , url = require('url')
  , fs = require('fs')
  , io = require('../')//path to your socket.io lib
  , sys = require(process.binding('natives').util ? 'util' : 'sys')
  , server;

server = http.createServer(function(req, res){
  var path = url.parse(req.url).pathname;
}),

server.listen(8084);//This could be almost any port number

दूसरा, अपने सर्वर को कमांड लाइन से चलाकर चलाएं:

node /path/to/your/server.js

तीसरा, क्लाइंट साइड जेएस का उपयोग कर सॉकेट से कनेक्ट करें:

var socket = new io.Socket(null, {port: 8084, rememberTransport: false});
socket.connect();

आपको socket.io lib क्लाइंट साइड को भी शामिल करना होगा।

क्लाइंट साइड से डेटा नोड सर्वर पर डेटा भेजें:

socket.send({data:data});

आपके server.js में प्रोसेसिंग अनुरोधों के लिए फ़ंक्शन भी होना चाहिए:

io.on('connection', function(client){
//action when client connets

 client.on('message', function(message){
    //action when client sends msg
  });

  client.on('disconnect', function(){
    //action when client disconnects
  });
});

सर्वर से डेटा को क्लाइंट में भेजने के दो मुख्य तरीके हैं:

client.send({ data: data});//sends it back to the client making the request

तथा

client.broadcast({  data: data});//sends it too every client connected to the server

मैं अपने LAMP सेटअप के साथ एक wss (सुरक्षित websocket) सर्वर चला रहा हूँ।

Node.js आसानी से आप चाहते हैं कि किसी अन्य वेब सर्वर (अपाचे) के साथ चला सकते हैं। @ किटक कैराउ उदाहरण में, वह पोर्ट 8084 पर नोड चलाने देता है - जहां वह चल रहा है और सुन रहा है, 80 या 443 आदि नहीं (वे आमतौर पर अपाचे द्वारा लिया जाता है)। लेकिन आप अभी भी उसी पोर्ट का उपयोग http / https (मेरे मामले में बस कुछ conf और सामान्य जानकारी बताते हैं कि सेवा ऊपर है) की सेवा के लिए भी कर सकते हैं।

कंसोल से शुरू करना सबसे अच्छा तरीका नहीं है (दूरस्थ रूप से, कंसोल बंद करते समय नोड बंद हो जाता है)। मैं सेवा के रूप में रनिंग नोड पर एक नज़र डालने की सलाह देते हैं

रीयलटाइम में लॉग ट्रैक करना आसान है (console.log ("हैलो") के साथ लॉग इन करें; अपने आवेदन में):

tail -f /var/.../SocketServer.log

नमूना स्क्रिप्ट (नोड-सर्वर.कॉन्फ़):

author ....    
description "node.js server"    
# used to be: start on startup
# until we found some mounts weren't ready yet while booting:

start on started mountall
stop on shutdown

# Automatically Respawn:
respawn
respawn limit 99 5

# Max open files are @ 1024 by default. Bit few.
limit nofile 32768 32768

script
    # Not sure why $HOME is needed, but we found that it is:
    export HOME="/root"

    exec node /var/.../SocketServer.js >> /var/www/node/.../SocketServer.log 2>&1
end script

post-start script
   # Optionally put a script here that will notifiy you node has (re)started
   # /root/bin/hoptoad.sh "node.js has started!"
   echo "\n*********\nServer started\n$(date)\n*********" >> /var/.../SocketServer.log

end script




serverside-javascript