{"id":5203,"date":"2015-08-11T11:56:28","date_gmt":"2015-08-11T09:56:28","guid":{"rendered":"http:\/\/www.karadere.com\/blog\/?p=5203"},"modified":"2015-08-11T11:56:28","modified_gmt":"2015-08-11T09:56:28","slug":"node-js-ile-chat-ornegi","status":"publish","type":"post","link":"https:\/\/www.karadere.com\/blog\/node-js-ile-chat-ornegi.html","title":{"rendered":"Node JS ile chat \u00f6rne\u011fi."},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone\" src=\"http:\/\/www.dmuth.org\/files\/nodejs-dark.png\" alt=\"\" width=\"492\" height=\"365\" \/><\/p>\n<p>node server_chat.js<\/p>\n<p>&nbsp;<\/p>\n<p><strong>chat sayfas\u0131 \u00a0index.html<\/strong><\/p>\n<p>&lt;!DOCTYPE html&gt;<br \/>\n&lt;head&gt;<br \/>\n&lt;meta name=&#8221;author&#8221; content=&#8221;Burhan KARADERE&#8221;&gt;<br \/>\n&lt;link rel=&#8221;stylesheet&#8221; type=&#8221;text\/css&#8221; href=&#8221;css\/style.css&#8221; \/&gt;<br \/>\n&lt;script src=&#8221;http:\/\/code.jquery.com\/jquery-1.8.0.min.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script src=&#8221;http:\/\/localhost:3000\/socket.io\/socket.io.js&#8221;&gt;&lt;\/script&gt;<br \/>\n&lt;script type=&#8221;text\/javascript&#8221;&gt;<br \/>\n$(document).ready(function(){<br \/>\nvar socket = io.connect(&#8220;http:\/\/localhost:3000&#8221;); \/\/ 3000 portuna connect olduk<br \/>\n$(&#8220;#mesajGonder&#8221;).click(function(){ \/\/ #mesajgonder&#8217;a t\u0131kland\u0131\u011f\u0131nda<br \/>\nvar mesaj = $(&#8220;#mesajinput&#8221;).val(); \/\/ #mesajinput&#8217;un value&#8217;sini al<br \/>\nvar nick = $(&#8220;#nickinput&#8221;).val(); \/\/ #nickinput&#8217;un valuesini al<br \/>\nif (!mesaj){<br \/>\nreturn; \/\/ mesaj de\u011fi\u015fkeninin i\u00e7i bo\u015fsa ya da yoksa i\u015flem yapma<br \/>\n}<br \/>\nsocket.emit(&#8216;mesajgonder&#8217;,{ \/\/socket.emit (&#8216;mesajgonder&#8217;) arac\u0131l\u0131\u011f\u0131yla server.js&#8217;de socket.on da bizi bekleyen komutu JSON olarak yollad\u0131k.<br \/>\n&#8216;mesaj&#8217; : mesaj,<br \/>\n&#8216;uid&#8217; : nick \/\/ Hem mesaj\u0131 hem uid yani kullan\u0131c\u0131 kimli\u011fini socket.on&#8217;a aktard\u0131k.<br \/>\n});<br \/>\n$(&#8220;#mesajinput&#8221;).val(&#8220;&#8221;);<br \/>\n});<br \/>\nsocket.on(&#8220;mesajgitti&#8221;, function(data){ \/\/Server.js deki socket.emitten mesaj&#8217;\u0131 client&#8217;imize socket.on(mesajgitti) ile ald\u0131k.<br \/>\n$(&#8220;#yazismalar&#8221;).append(&#8220;&lt;li&gt;&#8221;+ data.uid + &#8221; diyor ki :&#8221; + data.mesaj + &#8220;&lt;\/li&gt;&#8221;); \/\/ ald\u0131\u011f\u0131m\u0131z datay\u0131(mesaj ve nicki) append ile #yazismalar divinin i\u00e7erisine li olarak ekledik.<br \/>\n});<br \/>\n});<br \/>\n&lt;\/script&gt;<br \/>\n&lt;\/head&gt;<br \/>\n&lt;body&gt;<br \/>\n&lt;div class=&#8221;chatsite&#8221;&gt;<br \/>\n&lt;div class=&#8221;mesaj-kapsa&#8221;&gt;<br \/>\n&lt;ul id=&#8221;yazismalar&#8221;&gt;<br \/>\n&lt;p&gt;Mesajlar&lt;\/p&gt;<br \/>\n&lt;\/ul&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;div class=&#8221;form-kapsa&#8221;&gt;<br \/>\n&lt;input type=&#8221;text&#8221; id=&#8221;nickinput&#8221; placeholder=&#8221;Nick Giriniz&#8221;&gt;&lt;\/input&gt;<\/p>\n<p>&lt;textarea id=&#8221;mesajinput&#8221;&gt;&lt;\/textarea&gt;<br \/>\n&lt;button id=&#8221;mesajGonder&#8221;&gt;G\u00f6nder&lt;\/button&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;\/div&gt;<br \/>\n&lt;\/body&gt;<br \/>\n&lt;\/html&gt;<\/p>\n<p><strong>server_chat.js sayfas\u0131<\/strong><\/p>\n<p>var io = require(&#8216;socket.io&#8217;).listen(3000); \/\/3000 portunu dinlemeye ba\u015flad\u0131k.<br \/>\nio.sockets.on(&#8216;connection&#8217;, function(socket){ \/\/ t\u00fcm node i\u015flemlerini kapsayan ana fonksiyonumuz<br \/>\nsocket.on(&#8216;mesajgonder&#8217;, function(data){ \/\/clientte&#8217;ki mesaj\u0131 ald\u0131k<br \/>\nsocket.emit(&#8216;mesajgitti&#8217;, data) \/\/server mesaj\u0131 client&#8217;e geri g\u00f6nderdi emit ile<br \/>\nsocket.broadcast.emit(&#8216;mesajgitti&#8217;, data) \/\/<br \/>\n});<br \/>\n});<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>kaynak :\u00a0https:\/\/nodejs.org\/<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Node JS ile chat \u00f6rne\u011fi.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_uf_show_specific_survey":0,"_uf_disable_surveys":false,"footnotes":"","_links_to":"","_links_to_target":""},"categories":[2,32],"tags":[634,670,1241,1247,1536,1571,1573,1613],"class_list":["post-5203","post","type-post","status-publish","format-standard","hentry","category-2015-2016","category-node-js","tag-calisir","tag-chat","tag-javascript","tag-js","tag-nasil","tag-node","tag-nodejs","tag-ornegi","has-post-title","has-post-date","has-post-category","has-post-tag","has-post-comment","has-post-author",""],"aioseo_notices":[],"views":1502,"_links":{"self":[{"href":"https:\/\/www.karadere.com\/blog\/wp-json\/wp\/v2\/posts\/5203","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.karadere.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.karadere.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.karadere.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.karadere.com\/blog\/wp-json\/wp\/v2\/comments?post=5203"}],"version-history":[{"count":0,"href":"https:\/\/www.karadere.com\/blog\/wp-json\/wp\/v2\/posts\/5203\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.karadere.com\/blog\/wp-json\/wp\/v2\/media?parent=5203"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.karadere.com\/blog\/wp-json\/wp\/v2\/categories?post=5203"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.karadere.com\/blog\/wp-json\/wp\/v2\/tags?post=5203"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}