সুতরাং, শুরুতে, আমি আমার প্রকল্পটি গিথুবটিতে রেখেছি, যদি আপনি সম্পূর্ণ কোডটিতে অ্যাক্সেস চান: https://github.com/jdutheil/nodePHP
এটি একটি খুব সাধারণ উদাহরণ প্রকল্প: একটি ওয়েব চ্যাট। আপনার কাছে কেবল একজন লেখক এবং বার্তা রয়েছে এবং আপনি যখন প্রেরণ টিপেন তখন এটি একটি মাইএসকিএল ডাটাবেসে সংরক্ষিত হয়। ধারণাটি হ'ল রিয়েল টাইম আপডেটগুলি প্রেরণ করা এবং আসল কথোপকথন করা। ;) আমরা এর জন্য নোডজেএস ব্যবহার করব।
আমি পিএইচপি কোড সম্পর্কে কথা বলব না, এটি সত্যিই সহজ এবং এখানে আকর্ষণীয় নয়; আমি আপনাকে যা দেখতে চাই তা হল আপনার নোডজেএস কোডটি কীভাবে সংহত করা যায়।
আমি এক্সপ্রেস এবং সকেট ব্যবহার করি I তারপরে, আমরা একটি সাধারণ নোডজেএস সার্ভার তৈরি করি:
var socket = require( 'socket.io' );
var express = require( 'express' );
var http = require( 'http' );
var app = express();
var server = http.createServer( app );
var io = socket.listen( server );
io.sockets.on( 'connection', function( client ) {
console.log( "New client !" );
client.on( 'message', function( data ) {
console.log( 'Message received ' + data.name + ":" + data.message );
io.sockets.emit( 'message', { name: data.name, message: data.message } );
});
});
server.listen( 8080 );
যখন কোনও নতুন ব্যবহারকারী সংযুক্ত থাকে তখন আমরা আমাদের ইভেন্টগুলি কলব্যাকটি নিবন্ধভুক্ত করি; প্রতিবার আমরা কোনও বার্তা পাই (একটি চ্যাট বার্তার প্রতিনিধিত্ব করে), আমরা এটি সংযুক্ত প্রতিটি ব্যবহারকারীর কাছে সম্প্রচার করি। এখন, জটিল অংশ: ক্লায়েন্ট-সাইড! যে অংশটি আমাকে বেশিরভাগ সময় নিয়েছিল, কারণ কোন স্ক্রিপ্টে নোড সার্ভার ছাড়া সকেট.আইও কোড চালাতে সক্ষম হতে হবে তা আমি জানতাম না (কারণ ক্লায়েন্ট পৃষ্ঠাটি অ্যাপাচি পরিবেশন করবে)।
তবে সবকিছু ইতিমধ্যে সম্পন্ন হয়েছে; আপনি যখন এনপিএম সহ সকেট.আইও মডিউল ইনস্টল করেন, তখন একটি স্ক্রিপ্ট পাওয়া যায় /node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js
; যে স্ক্রিপ্টটি আমরা আমাদের পিএইচপি পৃষ্ঠায় অন্তর্ভুক্ত করব, আমার ক্ষেত্রে:
<script src="js/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js"></script>
<script src="js/nodeClient.js"></script>
এবং শেষ করতে, আমার নোডক্লিয়েন্ট.জেএস, যেখানে আমরা কেবল নোড সার্ভারের সাথে সংযোগ করি এবং আমাদের পৃষ্ঠা আপডেট করার জন্য ইভেন্টের জন্য অপেক্ষা করি। ;)
var socket = io.connect( 'http://localhost:8080' );
$( "#messageForm" ).submit( function() {
var nameVal = $( "#nameInput" ).val();
var msg = $( "#messageInput" ).val();
socket.emit( 'message', { name: nameVal, message: msg } );
$.ajax({
url: "./ajax/insertNewMessage.php",
type: "POST",
data: { name: nameVal, message: msg },
success: function(data) {
}
});
return false;
});
socket.on( 'message', function( data ) {
var actualContent = $( "#messages" ).html();
var newMsgContent = '<li> <strong>' + data.name + '</strong> : ' + data.message + '</li>';
var content = newMsgContent + actualContent;
$( "#messages" ).html( content );
});
আমি যত তাড়াতাড়ি সম্ভব আমার কোড আপডেট এবং উন্নত করার চেষ্টা করব, তবে আমি মনে করি এটি ইতিমধ্যে সমস্ত দুর্দান্ত জিনিসগুলির জন্য উন্মুক্ত! আমি এই জিনিসগুলি সম্পর্কে পরামর্শ এবং পর্যালোচনার জন্য সত্যই উন্মুক্ত, এটি করার কি এটি ভাল উপায়, ..?
আশা করি এটি কিছু লোককে সহায়তা করতে পারে!