<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>پست‌های انتشارات سرویس ابری لیارا</title>
        <link>https://virgool.io/liara-ir/feed</link>
        <description>جایگزینی برای هاست اشتراکی و سرور مجازی</description>
        <language>fa</language>
        <pubDate>2026-06-10 16:07:41</pubDate>
        <image>
            <url>https://files.virgool.io/upload/publication/wwf8w4vjscsz/djvmhp.png</url>
            <title>سرویس ابری لیارا</title>
            <link>https://virgool.io/liara-ir</link>
        </image>

                    <item>
                <title>استفاده از لیارا / NextJS / Bitbucket Pipelines</title>
                <link>https://virgool.io/liara-ir/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-%D9%84%DB%8C%D8%A7%D8%B1%D8%A7-%D8%AF%D8%B1-bitbucket-pipelines-unlzpcjxsvgu</link>
                <description>فایل liara.json را در شاخه اصلی پروژه شبیه به فایل زیر ایجاد کنید:{
  &amp;quotapp&amp;quot: &amp;quotPROJECT_NAME&amp;quot,
  &amp;quotport&amp;quot: 3000,
  &amp;quotnode&amp;quot: {
    &amp;quotversion&amp;quot: &amp;quot12&amp;quot
  }
}و حالا bitbucket-pipelines.yml را شبیه کد زیر پیکربندی کنید: https://gist.github.com/mhosseinab/798c2122d79f38110c0ee98ec2f2570f برای بدست آوردن LIARA_TOKEN کافیست پس از اجرای دستور liara login ، توکن خود را در فایل ~/.liara.json پیدا کنید و آن را در bitbucket با استفاده از مسیر زیر به صورت Secured ذخیره کنید:Repository settings &gt; Repository variables</description>
                <category>سرویس ابری لیارا</category>
                <author>محمدحسین</author>
                <pubDate>Fri, 24 Apr 2020 00:07:17 +0430</pubDate>
            </item>
                    <item>
                <title>آموزش اجرا کردن لاراول در هاست یا سرور</title>
                <link>https://virgool.io/liara-ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%D8%AC%D8%B1%D8%A7-%DA%A9%D8%B1%D8%AF%D9%86-%D9%84%D8%A7%D8%B1%D8%A7%D9%88%D9%84-%D8%AF%D8%B1-%D9%87%D8%A7%D8%B3%D8%AA-%DB%8C%D8%A7-%D8%B3%D8%B1%D9%88%D8%B1-r40qxgypwhuc</link>
                <description>توسعه‌دهنده‌ی لاراول باشی و دسترسی به artisan نداشته باشی! مگر می‌شود؟ و یا باید کلی منتظر آپلودشدن پوشه‌ی vendor باشی! آخر مگر این پوشه را هم آپلود می‌کنند؟ این پوشه را داخل gitignore قرار داده‌اند که چه؟ که یک‌وقت آپلودش نکنیم!هاست‌های اشتراکی فعلی چندان جواب‌گوی نیازهای برنامه‌نویس‌ها و توسعه‌دهندگان امروزی نیستند. کافیست ترکیب‌های «هاست لاراول» و یا «هاست اشتراکی» را در گوگل جستجو کنید. سرویس‌های بسیاری را مشاهده خواهید کرد که از فرایند خرید سرویس، منظورم همان WHMCS معروف است، تا اجرای پروژه به واسطه‌ی cPanel، کاملا مشابه یکدیگر هستند و هیچ‌کدام ارزش‌افزوده‌ی دیگری را ارائه نمی‌کنند. حتی اگر دقت کنید، از لحاظ قیمتی هم تفاوت چندانی ندارند. تنها ترکیب‌های مختلفی از پلن‌ها را ارائه می‌کنند.این را هم می‌دانیم که هاست‌های cPanel امروزی، مناسب تکنولوژی‌هایی که استفاده می‌کنیم، نیستند. ما از Git استفاده می‌کنیم، از NodeJS برای FrontEnd کمک می‌گیریم و از فریم‌ورک Laravel برای BackEnd قدرت می‌گیریم. دستورات php artisan را اجرا می‌کنیم و از composer برای نصب پکیج‌های‌مان و جلوگیری از کدهای تکراری بهره می‌گیریم.اما در نهایت، وقتی که توسعه‌ی پروژه به نقطه‌ی مطلوبی رسیده باشد و به دنبال قراردادن پروژه‌ی‌تان روی یک سرویس هاست لاراول باشید، ناامید خواهد شد. چرا که عملا این هاستینگ‌ها به صورت اختصاصی برای لاراول طراحی نشده‌اند و شما باید ابزارهایی که در بند قبل گفته شد را کنار بگذارید و به شیوه‌ی سنتی پروژه‌ی‌تان را روی هاست آپلود کنید. حتی گاها لازم است که تغییراتی را هم در فایل‌های اصلی خود لاراول ایجاد کنید تا بتواند در این سرویس‌ها اجرا شود و همیشه باید مواظب باشید که این تغییرات را اشتباها از بین نبرید.اجرای لاراول در هاست اشتراکی کار ساده‌ای نیست.اگر خودم VPS و سرور تهیه کنم، چه؟حتما قبلا با لینوکس کار کردید. می‌دانید چطور باید SSH بزنید. می‌دانید که چه توزیعی از لینوکس را انتخاب کنید. تفاوت‌های بین CentOS و Ubuntu را می‌دانید. کار با Firewall را یاد گرفته‌اید و می‌دانید که چطور دسترسی‌ها را مدیریت کنید. می‌دانید که چطور منابع مصرفی سرورتان را مانیتور کنید. اگر مشکلی پیش بیاید، می‌دانید که چطور باید رفع کنید. می‌دانید که چگونه Apache یا Nginx را نصب کنید و چگونه PHP و اکستنشن‌های آن را روی سرور کامپایل و نصب کنید. می‌دانید که چگونه پروژه‌ی لاراول‌تان را به سرور منتقل کنید و می‌دانید که چگونه برای Apache باید Virtual Host بسازید.اجرای لاراول در سرور و یا VPS هم کار ساده‌ای نیست.نه نمی‌دانم! وقت کافی هم ندارم!در بند قبلی فقط بخشی از دانستی‌ها را گفتیم. دانشی که قبل از تهیه‌ی VPS و سرور خودتان نیاز دارید. پس خرید VPS برای لاراول هم چندان گزینه‌ی ایده‌آلی به نظر نمی‌رسد. سخت، وقت‌گیر و در نهایت طاقت‌فرساست.چه کنیم؟ در نهایت، هاست مناسب لاراول هم داریم؟خبر خوب این است که بله. سرویس ابری لیارا، هاستینگی با تمرکز روی لاراول و تکنولوژی‌های مدرن است. در این هاست ابری، خبری از cPanel نیست و شما با روش‌هایی کاملا مدرن پروژه‌ی‌تان را روی سرور قرار داده و مدیریت می‌کنید.سرویس ابری لیاراسرویس ابری لیارا یک استارت‌آپ ایرانی است که سرویس‌های ابری مختلفی را ارائه می‌کند. نه تنها می‌توانید پروژه‌های لاراول‌تان را با یک دستور روی سرورهای ابری لیارا اجرا کنید، بلکه امکان اجرای پروژه‌های NodeJS و React و Vue و... هم هست.در سرویس ابری لیارا ثبت نام کنید و ۵۰۰۰ تومان اعتبار هدیه دریافت کنید. و این یعنی می‌توانید از هاست لاراول، دیتابیس‌های MySQL و یا MongoDB و سایر خدمات سرویس ابری لیارا برای چند روز به رایگان استفاده کنید.این هاست لاراول، به شما قابلیتی شبیه به دسترسی SSH ارائه می‌کند که می‌توانید از آن برای اجرای دستورات artisan و یا composer استفاده کنید.بعد از ثبت نام، یک پروژه با نام دلخواه‌تان بسازید. هر نامی که انتخاب کنید، پروژه‌ی‌تان با آن نام در دسترس خواهد بود. برای مثال، اگر نام my-project را انتخاب کنید، سرویس ابری لیارا آدرس my-project.liara.run را به شما اختصاص خواهد داد. دامنه‌ی شخصی و دلخواه خودتان را هم هر زمان که نیاز داشتید، می‌توانید به رایگان اضافه کنید.خبر خوب این است که زیردامنه‌ی liara.run به صورت پیش‌فرض HTTPS است. حتی اگر دامنه‌ی دلخواه خودتان را نیز اضافه کنید، با یک کلیک و به صورت کاملا رایگان، گواهی HTTPS رایگان دریافت می‌کنید.برای این که بتوانید از قابلیت هاست Laravel سرویس ابری لیارا استفاده کنید، لازم است که Liara CLI را از طریق npm نصب کنید:npm i -g @liara/cliو حالا دستور زیر را برای ورود به حساب کاربری‌ای که در سرویس ابری لیارا ساختید، وارد کنید:liara loginدر نهایت وارد پوشه‌ی پروژه‌ی‌تان شوید و دستور دیپلوی را وارد کنید:liara deployتوضیحات بیشتر درباره‌ی این فرایند را می‌توانید در مستندات سرویس ابری لیارا مطالعه کنید.از لینک زیر وارد سرویس ابری لیارا شوید و با دریافت ۵۰۰۰ تومان اعتبار هدیه، این سرویس را امتحان کنید: https://liara.ir/ جمع‌بندیدر این نوشته، از ایرادات هاست‌های اشتراکی PHP و لاراول گفتیم. این که چرا نباید cPanel به عنوان هاست لاراول استفاده کنیم و سرویس ابری لیارا را به عنوان جایگزینی مدرن معرفی کردیم.نظر شما چیست؟ شما از چه روشی برای استقرار پروژه‌های‌تان روی هاست یا سرور استفاده می‌کنید؟ آیا سرویس ابری لیارا را می‌شناختید؟ از آن استفاده می‌کنید؟</description>
                <category>سرویس ابری لیارا</category>
                <author>محمدحسین عباداللهی</author>
                <pubDate>Sun, 15 Sep 2019 14:57:06 +0430</pubDate>
            </item>
                    <item>
                <title>نوشتن Dockerfile برای node.js</title>
                <link>https://virgool.io/liara-ir/%D9%86%D9%88%D8%B4%D8%AA%D9%86-dockerfile-%D8%A8%D8%B1%D8%A7%DB%8C-nodejs-jyxg06dz3ak5</link>
                <description>الان که همه چیز میره به سمت بهینه شدن و حرفه ای شدن ، خیلی مهمه که بتونیم اپلیکیشن هامون رو هم ببریم روی بسترهای حرفه ایتر . قبل از این در مورد داکر باهاتون صحبت کردم و مزیت ها رو هم گفتم . جدا از من ، داکرمی هم خیلی مفیده و میتونه خوب باشه براتون  . موضوع مهم اینه که برنامه های node.js  که نوشتیم رو چجوری داکرایز کنیم و روی داکر بتونیم به راحتی استفاده کنیم . خوب من یک برنامه ساده با express.js  مینویسم و روی داکر میبرمش . پس خیلی سریع میرم سر اصل مطلب :mkdir mrCoder_nodejs
cd mrCoder_nodejs
nano package.json
داخل package.json  کدزیر رو بنویسید :{
  &quot;name&quot;: &quot;mrCoder_express_image&quot;,
  &quot;version&quot;: &quot;1.0.0&quot;,
  &quot;description&quot;: &quot;mrCoder image&quot;,
  &quot;author&quot;: &quot;nima habibkhoda &lt;nima.2004hkh@gmail.com&gt;&quot;,
  &quot;license&quot;: &quot;MIT&quot;,
  &quot;main&quot;: &quot;app.js&quot;,
  &quot;keywords&quot;: [
    &quot;nodejs&quot;,
    &quot;bootstrap&quot;,
    &quot;express&quot;
  ],
  &quot;dependencies&quot;: {
    &quot;express&quot;: &quot;^4.16.4&quot;
  }
}حالا میریم اپلیکیشن رو بسازیم :npm i 
nano app.js
&#039;use strict&#039;;
const express = require(&#039;express&#039;);

// Constants
const PORT = 8080;
const HOST = &#039;0.0.0.0&#039;;

// App
const app = express();
app.get(&#039;/&#039;, (req, res) =&gt; {
  res.send(&#039;Hello world&#039;);
});

app.listen(PORT, HOST);
console.log(`Running on http://${HOST}:${PORT}`);تا اینجا رو میدونیم و راحته . حالا میریم که داکر رو بسازیم : nano DockerfileFROM node:10-alpineدقت کنید  : من از node:10-alpine  استفاده کردم چون خیلی توی پروژه ها به درد بخوره . کلا alpine  یک نسخه light  و کم حجم لینوکسیه که داخل داکر فقط 5 مگابایته و از هسته لینوکس استفاده کرده تا راحت بتونیم روش کار کنیم . 10 هم به این معنیه که نسخه node  ما ، 10 باشه . # Create app directory
WORKDIR /usr/src/app
# Install app dependencies
COPY package*.json ./
RUN npm install --only=production
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ &quot;npm&quot;, &quot;start&quot; ]کدها خیلی پیچیده نیستن . کپی کردن چند فایل داخل workdir  برای اینکه بتونیم باهاشون کار کنیم . فقط EXPOSE چیه؟دستور EXPOSE  یک دستور شبکه ایه که اجازه میده روی tcp  داکر ، روی پورتی که دوست داریم ، پروژه رو اجرا کنیم . خوب حله دیگه . حالا پروژه رو راه بندازیم  :docker build -t mrcoder/node-express-app .
docker run -p 49160:8080 -d mrcoder/node-express-app
curl -i localhost:49160خروجی کد بالا اینه :HTTP/1.1 200 OK
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Content-Length: 12
ETag: W/&quot;c-M6tWOb/Y57lesdjQuHeB1P/qTV0&quot;
Date: Mon, 13 Nov 2017 20:53:59 GMT
Connection: keep-alive

Hello worldداخل کدهای داکر ما روی 49160 یک container  راه انداختیم و image  رو اجرا کردیم .تمومه . ما داریم داخل گروه تلگرامیمون ، دوست داران node.js  رو جمع میکنیم . خوشحال میشیم در خدمت باشیم  : t.me/joinchat/DdVnn0Gql_U_sMtml01gQQhttps://www.instagram.com/mr.coder.ir/@mr.coder.ir</description>
                <category>سرویس ابری لیارا</category>
                <author>نیما حبیب خدا</author>
                <pubDate>Fri, 08 Feb 2019 01:35:03 +0330</pubDate>
            </item>
                    <item>
                <title>آموزش ساخت پیام‌رسان با Socket.io و Vue از صفر تا صد</title>
                <link>https://virgool.io/liara-ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B3%D8%A7%D8%AE%D8%AA-%D9%BE%DB%8C%D8%A7%D9%85%D8%B1%D8%B3%D8%A7%D9%86-%D8%A8%D8%A7-socketio-%D9%88-vue-%D8%A7%D8%B2-%D8%B5%D9%81%D8%B1-%D8%AA%D8%A7-%D8%B5%D8%AF-rnjgkwfknyh9</link>
                <description>با استفاده از ویژگی‌های رویدادگرای NodeJS می‌توان سرویس‌های مختلفی از جمله پیام‌رسان‌ها را پیاده‌سازی کرد. در این نوشته، با استفاده از کتاب‌خانه‌ی Socket.io، قابلیت آنی و لحظه‌ای بودن پیام‌ها را پیاده می‌کنیم. برای سمت کاربری، از فریم‌ورک جذاب VueJS استفاده می‌کنیم. این فریم‌ورک، کتاب‌خانه‌ای به نام ElementUI دارد که از آن برای ظاهر پروژه استفاده می‌کنیم. در نهایت، پروژه را روی سرور مستقر می‌کنیم تا بتوانیم آن را به اشتراک بگذاریم و استفاده کنیم.خروجی نهایی پروژهشروع به کاریک پوشه با نام دلخواه‌تان بسازید. من نام پوشه‌ام را fara-chat قرار می‌دهم. دستور زیر را در این پوشه وارد کنید تا فایل package.json ایجاد شود:npm init -yدر ادامه، پکیج Express را نصب می‌کنیم که بتوانیم فایل‌های استاتیک مثل HTML و CSS را برای کاربران‌مان سرو کنیم و نمایش دهیم:npm install expressبعد از اتمام دستور بالا، یک فایل package-lock.json هم باید برای‌تان ساخته شده‌باشد. این فایل جزئیات پکیج‌هایی که نصب می‌کنیم را در خودش ذخیره می‌کند و کاری به کارش نخواهیم داشت. ضمن این‌که اگر فایل package.json را مشاهده کنید، یک فیلد با نام dependencies در آن وجود دارد که نشان می‌دهد کتاب‌خانه‌ی Express نصب شده‌است.یک فایل با نام server.js ایجاد کنید و کدهای زیر را داخل آن قرار دهید:const express = require(&#039;express&#039;);

const app = express();

const server = app.listen(3000, function () {
 console.log(&#039;Server is listening on http://localhost:3000&#039;);
});در کد بالا، در ابتدا ماژول express را فراخوانی کرده و یک app ایجاد کرده‌ایم که به پورت 3000 گوش می‌دهد. این یعنی این‌که با اجرای این برنامه، باید بتوانید وارد http://localhost:3000 شده و خروجی آن را ببینید. برای اجرای این برنامه، دستور زیر را در خط فرمان وارد کنید:node server.jsهمان‌طور که مشاهده می‌کنید، پیام Server is listening on http://localhost:3000 روی خط فرمان چاپ می‌شود و نشان از صحت عملکرد کد بالا دارد.برای این که اصولی‌تر کار کنیم، فایل package.json را باز کرده و در قسمت scripts یه فیلد دیگر با نام start ایجاد کنید و مقدار آن را برابر node server.js قرار دهید. در نهایت، فایل package.json شما باید شبیه این شده باشد:{
 &amp;quotname&amp;quot: &amp;quotfara-chat&amp;quot,
 &amp;quotversion&amp;quot: &amp;quot1.0.0&amp;quot,
 &amp;quotdescription&amp;quot: &amp;quot&amp;quot,
 &amp;quotmain&amp;quot: &amp;quotserver.js&amp;quot,
 &amp;quotscripts&amp;quot: {
 &amp;quotstart&amp;quot: &amp;quotnode server.js&amp;quot,
 &amp;quottest&amp;quot: &amp;quotecho \&amp;quotError: no test specified\&amp;quot &amp;&amp; exit 1&amp;quot
  },
 &amp;quotkeywords&amp;quot: [],
 &amp;quotauthor&amp;quot: &amp;quot&amp;quot,
 &amp;quotlicense&amp;quot: &amp;quotISC&amp;quot,
 &amp;quotdependencies&amp;quot: {
 &amp;quotexpress&amp;quot: &amp;quot^4.16.4&amp;quot
  }
}از این پس، می‌توانیم با استفاده از دستور npm start پروژه را اجرا کنیم.نمایش اولین خروجی قابل فهم!خب فکر می‌کنم از این همه دستور و خط فرمان خسته شده‌اید. برویم سراغ خروجی‌های جذاب‌تر و قابل فهم‌تر. اول از همه، باید از Express بخواهیم که فایل‌های HTML و CSS و JS ما را که مرتبط با سمت کاربری هستند را سرو کرده و نمایش دهد. برای این کار، فقط کافیست دو خط دیگر به فایل server.js اضافه کنیم:const staticPath = __dirname + &#039;/static&#039;;
app.use(express.static(staticPath));در خط اول، مسیر فایل‌های استاتیک‌مان را مشخص کرده‌ایم، که در اینجا به پوشه‌ی static اشاره می‌کند. پس همین الان یک پوشه با نام static ایجاد کنید. در خط دوم، یک middleware که خود ماژول express در اختیارمان قرار داده را با استفاده از متد use مورد استفاده قرار دادیم. در نهایت،‌ فایل server.js شما باید شبیه این شده باشد:const express = require(&#039;express&#039;);

const app = express();

const staticPath = __dirname + &#039;/static&#039;;
app.use(express.static(staticPath));

const server = app.listen(3000, function () {
 console.log(&#039;Server is listening on http://localhost:3000&#039;);
});و حالا برای این که مطمئن شویم همه چیز به درستی کار می‌کند، یک فایل با نام index.html ایجاد کرده و داخل آن، کد HTML زیر را اضافه کنید:&lt;html&gt;
&lt;head&gt;
  &lt;meta charset=&amp;quotUTF-8&amp;quot&gt;
  &lt;title&gt;Chat App&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
  &lt;h1&gt;Hello from our Chat app :)&lt;/h1&gt;
&lt;/body&gt;
&lt;/html&gt;و در نهایت، برای دیدن خروجی، آدرس http://localhost:3000 را در مرورگرتان باز کنید. توجه داشته باشید که قبل از آن، باید دستور npm start قبلی را متوقف کرده و دوباره npm start بزنید.نوبتی هم که باشه، نوبت Socket.io هستو حالا برویم سراغ جذاب‌ترین قسمت این پروژه. با دستور زیر، پکیج socket.io را نصب کنید:npm install socket.ioو برای راه‌اندازی سرور سوکت‌مان، همانی که قرار است ارتباط آنی و لحظه‌ای کاربران را به عهده بگیرد، تکه کد زیر را به انتهای فایل server.js اضافه کنید:const io = require(&#039;socket.io&#039;)(server);همان‌طور که می‌بینید، برای صرفه‌جویی در سرانه‌ی مصرف کد، در یک خط، هم socket.io را وارد پروژه کرده و هم با پاس‌دادن server، آن را راه‌اندازی کرده‌ایم.برویم سراغ رابط کاربریخب، امیدوارم تا به اینجا خسته نشده‌باشید. اگر خسته شده‌اید، یک فنجان چای یا قهوه بنوشید تا بعد از آن برویم سراغ رابط کاربری، VueJS و style ها.برای نصب Vue، فقط کافیست اسکریپت زیر را قبل از بسته‌شدن تگ body به انتهای فایل index.html اضافه کنید:&lt;script src=&amp;quothttps://cdn.jsdelivr.net/npm/vue&amp;quot&gt;و حالا یک فایل با نام app.js داخل پوشه‌ی static ایجاد کنید تا کدهای جاوا اسکریپت رابط کاربری‌مان را داخل آن قرار بدهیم. داخل این فایل، با کد زیر، Vue را راه‌اندازی می‌کنیم:new Vue({
  el: &#039;#chat-app&#039;,
})همان‌طور که مشاهده می‌کنید، به سادگی و فقط با ساختن یک نمونه از شئ Vue، توانستیم آن را راه‌اندازی کنیم. در ادامه پارامترهای بیشتری را ایجاد خواهیم کرد، اما حداقل باید پارامتر el را در ابتدا ایجاد کرده و مقداردهی کنیم. Vue نیاز دارد که بداند کدام بخش صفحه را در اختیار آن قرار می‌دهیم که بتواند آن بخش را در اختیار گرفته و کنترل کند. من در اینجا یک عنصر با شناسه‌ی chat-app را تعریف کرده‌ام. بنابراین، وارد فایل index.html شده و یک div یا این شناسه ایجاد کنید:&lt;div id=&amp;quotchat-app&amp;quot&gt;&lt;/div&gt;برای این که مطمئن شویم که همه چیز به درستی کار می‌کند، پارامتر data را هم به Vue اضافه کنید:new Vue({
  el: &#039;#chat-app&#039;,
    data: {
      message: &#039;Hello World!&#039;
    }
})و حالا برای این که message را داخل صفحه نمایش دهیم، فایل index.html را مانند تکه کد زیر تغییر دهید:&lt;div id=&amp;quotchat-app&amp;quot&gt; {{ message }} &lt;/div&gt;صفحه را رفرش کنید. پیام Hello World را باید مشاهده کنید. اگر همه چیز تا به اینجا خوب پیش رفته، خودتان را تشویق کنید :)یک فایل با نام style.css هم داخل پوشه‌ی static ایجاد کنید که بتوانیم ظاهر صفحه را بهتر کنیم. برای شروع، می‌توانید تکه کد زیر را داخل این فایل قرار دهید:body {
 background-color: #f1f1f1;
 font-family: &amp;quotHelvetica Neue&amp;quot, Helvetica, Arial;
}در نهایت، ساختار پروژه‌ی شما باید مانند تصویر زیر شده باشد:ساختار پروژهاولین پیام را ارسال کنیمبرای این‌که بتوانیم پیام‌مان را نوشته و ارسال کنیم، به یک فیلد متنی و یک دکمه نیاز داریم:&lt;div id=&amp;quotchat-app&amp;quot&gt;
  Enter your message: &lt;input type=&amp;quottext&amp;quot v-model=&amp;quottext&amp;quot /&gt;
  &lt;button @click=&amp;quotsendText()&amp;quot&gt;Send&lt;/button&gt;
&lt;/div&gt;فایل app.js را هم به این صورت تغییر دهید:new Vue({
  el: &#039;#chat-app&#039;,
  data: {
    text: &#039;&#039;
  },
  methods: {
    sendText() {
      alert&#40;this.text&#41;
    }
  }
})بدین ترتیب، با استفاده از خاصیت v-model که روی input قرار دادیم، ارتباط ۲ طرفه‌ای بین ورودی‌های کاربر و دیتای سمت جاوا اسکریپت برقرار کردیم. این قابلیت در Vue با نام Two Way Data Binding معروف است.با کلیک روی دکمه‌ی Send، با یک هشدار باید مواجه شوید که حاوی متنی است که داخل input نوشتید. بنابراین با this.text به متنی که کاربر نوشته، دسترسی داریم.اگر به خاطر داشته باشید، چند پاراگراف بالاتر، سرور socket.io را ایجاد کردیم. اما در سمت کلاینت هم، لازم هست که کتاب‌خانه‌ی socket.io-client را به صفحه اضافه کنیم:&lt;script src=&amp;quothttps://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.js&amp;quot&gt;کد بالا را هم قبل از بسته‌شدن تگ body، قرار دهید. حالا می‌توانیم با استفاده از این کتاب‌خانه، به socket.io در سمت سرور متصل شویم.برای برقراری اتصال، داخل فایل app.js، متد mounted را تعریف کرده و socket.io را راه‌اندازی می‌کنیم:new Vue({
  el: &#039;#chat-app&#039;,
  data: {
    text: &#039;&#039;
  },
  mounted() {
    this.socket = io.href);
  },
  ...با استفاده از متغیر .href، آدرس صفحه‌ی فعلی که برابر http://localhost:3000 است را به کلاینت socket.io می‌دهیم که بتواند به سرور متصل شود. mounted توسط خود Vue بعد از بارگذاری کامل صفحه و راه‌افتادن Vue صدا زده می‌شود.در ادامه، پیامی که کاربر وارد کرده را به سمت سرور با استفاده از متد emit ارسال می‌کنیم:methods: {
  sendText() {
    this.socket.emit(&#039;message&#039;, this.text);
  }
}در سمت سرور، باید پیام را گرفته و به همه‌ی کاربران ارسال کنیم. بنابراین، تکه کد زیر را در انتهای فایل server.js اضافه کنید:io.on(&#039;connection&#039;, function (socket) {
  console.log(&#039;New user connected.&#039;);

  socket.on(&#039;message&#039;, function (data) {
    io.emit(&#039;message&#039;, data);
  });
});در این کد، بعد از این که کاربری connection جدیدی ایجاد کرد، به رویداد message گوش فرا می‌دهیم و اگر پیامی دریافت شد، از سمت سرور، به تمام کاربران، آن پیام را با متد emit ارسال می‌کنیم.بنابراین، باید در سمت کلاینت هم این پیام را گرفته و نمایش دهیم: new Vue({
   el: &#039;#chat-app&#039;,
   data: {
     text: &#039;&#039;,
     messages: []
   },
   mounted() {
     this.socket = io.href);
   
     this.socket.on(&#039;message&#039;, text =&gt; {
       this.messages.push(text);
   });
  },
  methods: {
    sendText() {
      this.socket.emit(&#039;message&#039;, this.text);
    }
  }
})و در فایل index.html:&lt;div id=&amp;quotchat-app&amp;quot&gt;
  &lt;div v-for=&amp;quotmessage in messages&amp;quot&gt;
      {{ message }}
  &lt;/div&gt;
  
  &lt;hr&gt;
  
  Enter your message: &lt;input type=&amp;quottext&amp;quot v-model=&amp;quottext&amp;quot /&gt;
  &lt;button&gt;Send&lt;/button&gt;
&lt;/div&gt;بدین ترتیب، با ارسال هر پیام، سرور پیام را گرفته و به تمام کاربران تحویل می‌دهد. ما هم پیام‌هایی که دریافت می‌کنیم را داخل لیستی به نام messages ریخته و بعد در صفحه نمایش می‌دهیم.چگونه این برنامه را تا به این مرحله، روی سرور مستقر کنیم؟اگر می‌خواهید پروژه‌ی‌تان را روی سرور قرار داده و آن را با کاربران‌تان به اشتراک بگذارید، می‌توانید با استفاده از سرویس ابری لیارا این کار را به راحتی انجام دهید. در ابتدا وارد سایت https://liara.ir شده و ثبت نام کنید. سپس یک پروژه با ساب‌دامنه‌ی دلخواه‌تان ایجاد کنید. پروژه‌ی شما با این ساب‌دامنه در دسترس خواهد بود. مثلا اگر نام پروژه‌ی‌تان را my-chat قرار بدهید، پروژه‌ی شما در آدرس my-chat.liara.run در دسترس خواهد بود. این امکان هم وجود دارد که از دامنه‌ی اصلی خودتان استفاده کنید.بعد از ایجاد پروژه، با استفاده از دستور زیر، Liara CLI را روی کامپیوترتان نصب کنید:npm install -g @liara/cliبعد از نصب CLI، دستور زیر را وارد کنید تا وارد حساب کاربری‌تان شوید:liara loginو حالا کافیست که دستور زیر را در پوشه‌ی پروژه‌ی‌تان وارد کنید:liara deployو تمام! عملیات استقرار آغاز خواهد شد. ابتدا از شما نام پروژه‌ای که در داشبورد سرویس ابری لیارا ایجاد کردید را خواهد پرسید. سپس پورتی که پروژه در آن در حال اجرا است، پرسیده می‌شود. در این پروژه ما پورت را روی 3000 قرار دادیم. سرویس ابری لیارا به صورت خودکار تشخیص خواهد داد که پروژه‌ی شما با NodeJS نوشته شده‌است و آن را در بستر مناسبی قرار داده و دستور npm start را وارد می‌کند تا پروژه‌ی‌تان اجرا شود.اگر در ویندوز هستید، از نرم‌افزار Git Bash برای وارد کردن دستورات استفاده کنید. بهتر و مطمئن‌تر از CMD ویندوز است. این نرم‌افزار با نصب‌کردن Git روی کامپیوترتان، همراه با آن نصب می‌شود.در نهایت، پروژه‌ی شما در سرویس ابری لیارا مستقر شده و در دسترس خواهد بود. من هم پروژه‌ام را روی آدرس fara-chat.liara.run مستقر کردم. http://liara.ir حرف آخربستر NodeJS این امکان را برای‌مان فراهم می‌کند که بتوانیم به راحتی برنامه‌های آنی بنویسیم. Vue هم آن‌قدر ساده‌است که  خیلی سریع می‌توانیم کارهای پیچیده را با آن انجام دهیم. در قسمت دوم این مقاله، این پروژه را کامل‌تر کرده و مانند نمونه‌ای که تصویر آن در اول مقاله قرار داده شده، این پروژه را تکمیل می‌کنیم. اگر قابلیت خاصی مدنظرتان است، در بخش نظرات مطرح کنید تا در قسمت‌های بعد به آن‌ها هم بپردازیم.سورس این پروژه، به صورت متن‌باز در Github قرار گرفته‌است:https://github.com/mhemrg/socketio-vue-chat</description>
                <category>سرویس ابری لیارا</category>
                <author>محمدحسین عباداللهی</author>
                <pubDate>Wed, 28 Nov 2018 21:43:47 +0330</pubDate>
            </item>
            </channel>
</rss>