php - Usage of Node js calling socket.io functions -
in nodeclient.js, having 1 function
socket.emit( 'message', { name: nameval, message: msg } );
and
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 ); });
it visible here that, socket.on() function using here push data particular id,
but, if check id in html
<ul id="messages"> <?php $query = $pdo->prepare( 'select * message order msgid desc' ); $query->execute(); $messages = $query->fetchall( pdo::fetch_obj ); foreach( $messages $message ): ?> <li> <strong><?php echo $message->name; ?></strong> : <?php echo $message->message; ?> </li> <?php endforeach; ?> </ul>
in html page, fetching data database using mysql query, working fine php without node js also... now, question "how socket.on() or socket.emit() functions helping out result."
this complete nodeclient.js file
var socket = io.connect( 'http://localhost:8080' ); $( "#messageform" ).submit( function() { var nameval = $( "#nameinput" ).val(); var msg = $( "#messageinput" ).val(); //alert(msg); socket.emit( 'message', { name: nameval, message: msg } ); // ajax call saving datas $.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 ); });
and nodeserver.js
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 ); client.broadcast.emit( 'message', { name: data.name, message: data.message } ); io.sockets.emit( 'message', { name: data.name, message: data.message } ); }); }); server.listen( 8080 );
anyone please me this. in advance!
nodejs updates content of div real time. don't have load page. if use php need refresh page see changes.
Comments
Post a Comment