<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>nchan on 戲中話</title><link>https://blog.iphpo.com/tags/nchan/</link><description>Recent content in nchan on 戲中話</description><generator>Hugo</generator><language>zh-tw</language><managingEditor>herb09638@gmail.com (Herb)</managingEditor><webMaster>herb09638@gmail.com (Herb)</webMaster><lastBuildDate>Sun, 30 Dec 2018 16:19:29 +0800</lastBuildDate><atom:link href="https://blog.iphpo.com/tags/nchan/index.xml" rel="self" type="application/rss+xml"/><item><title>Nchan Summary</title><link>https://blog.iphpo.com/blog/nchan/summary/</link><pubDate>Sat, 29 Dec 2018 16:28:29 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/nchan/summary/</guid><description>&lt;h1 id="summary"&gt;Summary&lt;/h1&gt;
&lt;ul&gt;
&lt;li&gt;大綱&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/03/%E5%8D%B3%E6%99%82%E9%80%9A%E7%9F%A5%E7%B3%BB%E7%B5%B1%E7%B0%A1%E4%BB%8B/"&gt;即時通知系統簡介&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/03/nchan-%E7%89%B9%E8%89%B2/"&gt;Nchan 特色&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/03/%E5%AE%89%E8%A3%9Dnchan/"&gt;安裝 Nchan&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;用套件管理程式安裝&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/03/nchan%E5%AE%89%E8%A3%9D-%E7%B7%A8%E8%AD%AF%E5%8E%9F%E5%A7%8B%E7%A2%BC-install-nginx-from-source/"&gt;編譯原始碼&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/03/%E4%BD%BF%E7%94%A8docker%E5%95%9F%E5%8B%95-install-nchan-docker/"&gt;使用 Docker 啟動&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A-basic-setting/"&gt;基礎設定&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A%E5%AF%A6%E4%BD%9C/"&gt;基礎設定實作&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E9%A0%BB%E9%81%93-channel-id/"&gt;頻道 Channel ID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E9%A0%BB%E9%81%93-group-id/"&gt;頻道 Group ID&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/%E7%99%BC%E4%BD%88%E8%80%85publisher%E8%A8%AD%E5%AE%9A/"&gt;發佈者(Publisher)設定&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%80%85subscriber%E8%A8%AD%E5%AE%9A/"&gt;訂閱者(Subscriber)設定&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E5%90%8C%E6%99%82%E6%94%AF%E6%8F%B4%E7%99%BC%E4%BD%88%E8%88%87%E8%A8%82%E9%96%B1pubsub%E8%A8%AD%E5%AE%9A/"&gt;同時支援發佈與訂閱(PubSub)設定&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E8%88%87%E5%BE%8C%E7%AB%AF%E7%A8%8B%E5%BC%8F%E7%9A%84%E7%B5%90%E5%90%88/"&gt;Nchan 與後端程式的結合&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%80%85%E4%B8%8A%E7%B7%9A%E8%88%87%E4%B8%8B%E7%B7%9A%E9%80%9A%E7%9F%A5/"&gt;訂閱者上線與下線通知&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%88%87%E7%99%BC%E4%BD%88%E6%99%82%E7%9A%84%E9%A9%97%E8%AD%89/"&gt;訂閱與發佈時的驗證&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%8A%E6%81%AF%E8%BD%89%E7%99%BC/"&gt;訊息轉發&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;安全性設置
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E7%99%BC%E4%BD%88%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%E8%A8%AD%E7%BD%AE/"&gt;發佈的安全性設置&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E7%9A%84%E5%AE%89%E5%85%A8%E8%A8%AD%E7%BD%AE/"&gt;訂閱的安全性設置&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E5%A6%82%E4%BD%95%E6%B0%B4%E5%B9%B3%E6%93%B4%E5%B1%95%E8%88%87%E9%81%94%E5%88%B0%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7high-availability/"&gt;如何水平擴展與達到高可用性(HA)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>Nchan - 如何水平擴展與達到高可用性(High Availability)</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E5%A6%82%E4%BD%95%E6%B0%B4%E5%B9%B3%E6%93%B4%E5%B1%95%E8%88%87%E9%81%94%E5%88%B0%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7high-availability/</link><pubDate>Sun, 15 Apr 2018 12:01:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E5%A6%82%E4%BD%95%E6%B0%B4%E5%B9%B3%E6%93%B4%E5%B1%95%E8%88%87%E9%81%94%E5%88%B0%E9%AB%98%E5%8F%AF%E7%94%A8%E6%80%A7high-availability/</guid><description>&lt;h1 id="如何水平擴展與達到高可用性high-availability"&gt;如何水平擴展與達到高可用性(High Availability)&lt;/h1&gt;
&lt;p&gt;Nchan可將訊息儲存在檔案、記憶體與Redis，速度最快的是儲存在記憶體裡，但如果重開機訊息就會不見，而且如果需要兩台做Load Balance，彼此之間的訊息也無法同步，很可能造成A連線上第一台，B卻往第二台發送訊息，卻永遠發送不到的狀況發生，所以要做到水平擴展，勢必要跟Redis做結合，而在Nchan要做到這件事，也相當容易。&lt;/p&gt;</description></item><item><title>Nchan - 發佈的安全性設置</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E7%99%BC%E4%BD%88%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%E8%A8%AD%E7%BD%AE/</link><pubDate>Sun, 15 Apr 2018 12:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E7%99%BC%E4%BD%88%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7%E8%A8%AD%E7%BD%AE/</guid><description>&lt;h1 id="發佈的安全性設置"&gt;發佈的安全性設置&lt;/h1&gt;
&lt;p&gt;官方的建議，是將發佈的端點完全隱藏，只允許local存取發佈的位置。&lt;/p&gt;</description></item><item><title>Nchan - 訂閱的安全設置</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E7%9A%84%E5%AE%89%E5%85%A8%E8%A8%AD%E7%BD%AE/</link><pubDate>Sun, 15 Apr 2018 11:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E7%9A%84%E5%AE%89%E5%85%A8%E8%A8%AD%E7%BD%AE/</guid><description>&lt;h1 id="訂閱的安全設置"&gt;訂閱的安全設置&lt;/h1&gt;
&lt;p&gt;在訂閱的安全方面，官方建議三種做法：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;產生編碼過的Channel ID&lt;/li&gt;
&lt;li&gt;使用&lt;code&gt;nchan_authorize_request&lt;/code&gt;做驗證&lt;/li&gt;
&lt;li&gt;使用&lt;code&gt;X-Accel-Redirect&lt;/code&gt;隱藏Channel ID&lt;/li&gt;
&lt;/ol&gt;</description></item><item><title>Nchan - 與後端程式的結合</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E8%88%87%E5%BE%8C%E7%AB%AF%E7%A8%8B%E5%BC%8F%E7%9A%84%E7%B5%90%E5%90%88/</link><pubDate>Mon, 09 Apr 2018 10:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E8%88%87%E5%BE%8C%E7%AB%AF%E7%A8%8B%E5%BC%8F%E7%9A%84%E7%B5%90%E5%90%88/</guid><description>&lt;h1 id="nchan與後端程式的結合"&gt;Nchan與後端程式的結合&lt;/h1&gt;
&lt;p&gt;我之所以推薦nchan，是因為他可以與現有程式做緊密結合，包括但不限於&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%80%85%E4%B8%8A%E7%B7%9A%E8%88%87%E4%B8%8B%E7%B7%9A%E9%80%9A%E7%9F%A5/"&gt;訂閱者上線與下線通知&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%88%87%E7%99%BC%E4%BD%88%E6%99%82%E7%9A%84%E9%A9%97%E8%AD%89/"&gt;訊息轉發&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%8A%E6%81%AF%E8%BD%89%E7%99%BC/"&gt;訂閱與發佈時的驗證&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;當然還有更多的應用場景，這邊只列出我有用到的部分，其他可以參考&lt;a href="https://nchan.io/#hooks-and-callbacks"&gt;官方網站的Hooks and Callbacks&lt;/a&gt;章節。&lt;/p&gt;</description></item><item><title>Nchan - 訂閱者上線與下線通知</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%80%85%E4%B8%8A%E7%B7%9A%E8%88%87%E4%B8%8B%E7%B7%9A%E9%80%9A%E7%9F%A5/</link><pubDate>Mon, 09 Apr 2018 09:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%80%85%E4%B8%8A%E7%B7%9A%E8%88%87%E4%B8%8B%E7%B7%9A%E9%80%9A%E7%9F%A5/</guid><description>&lt;h1 id="訂閱者上線與下線通知"&gt;訂閱者上線與下線通知&lt;/h1&gt;
&lt;p&gt;上線與下線，其實只是該設定的其中一種應用，要達到此種效果，使用的是nchan提供的&lt;code&gt;nchan_subscribe_request&lt;/code&gt;與&lt;code&gt;nchan_unsubscribe_request&lt;/code&gt;這兩個設定。&lt;/p&gt;
&lt;p&gt;顧名思義，就是在訂閱者訂閱時發送一個request到後端伺服器，進而達到上線追蹤的功能，但也不限定此種應用，要如何應用，全由通知的後端伺服器來決定。&lt;/p&gt;</description></item><item><title>Nchan - 訂閱與發佈時的驗證</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%88%87%E7%99%BC%E4%BD%88%E6%99%82%E7%9A%84%E9%A9%97%E8%AD%89/</link><pubDate>Mon, 09 Apr 2018 08:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%88%87%E7%99%BC%E4%BD%88%E6%99%82%E7%9A%84%E9%A9%97%E8%AD%89/</guid><description>&lt;h1 id="訂閱與發佈時的驗證"&gt;訂閱與發佈時的驗證&lt;/h1&gt;
&lt;p&gt;這是一個滿重要的應用，想像一個場景，在聊天室裡，每個人有自己的channel id，如果沒有經過身份驗證，任何一個人都可以訂閱別人的channel，代表大家的聊天訊息會被監聽，或是沒有經過驗證，就可以隨意發送訊息給任意的人，這都是很危險的情況。&lt;/p&gt;
&lt;p&gt;在Nchan裡它提供了&lt;code&gt;nchan_authorize_request&lt;/code&gt;的設定，這不管是訂閱的路徑還是發佈的路徑都可以使用。&lt;/p&gt;</description></item><item><title>Nchan - 訊息轉發</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%8A%E6%81%AF%E8%BD%89%E7%99%BC/</link><pubDate>Mon, 09 Apr 2018 07:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%8A%E6%81%AF%E8%BD%89%E7%99%BC/</guid><description>&lt;h1 id="訊息轉發"&gt;訊息轉發&lt;/h1&gt;
&lt;p&gt;訊息轉發可以讓後端伺服器接收傳來的訊息，可以儲存、處理甚至修改原有的訊息。&lt;/p&gt;</description></item><item><title>Nchan - 同時支援發佈與訂閱(PubSub)設定</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E5%90%8C%E6%99%82%E6%94%AF%E6%8F%B4%E7%99%BC%E4%BD%88%E8%88%87%E8%A8%82%E9%96%B1pubsub%E8%A8%AD%E5%AE%9A/</link><pubDate>Thu, 05 Apr 2018 06:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E5%90%8C%E6%99%82%E6%94%AF%E6%8F%B4%E7%99%BC%E4%BD%88%E8%88%87%E8%A8%82%E9%96%B1pubsub%E8%A8%AD%E5%AE%9A/</guid><description>&lt;h1 id="同時支援發佈與訂閱pubsub設定"&gt;同時支援發佈與訂閱(PubSub)設定&lt;/h1&gt;
&lt;p&gt;Nchan也支援同時可以訂閱與發佈的設定，這對WebSocket全雙工的通道來說，是最方便的，連上一個位置，就可以訂閱訊息也可以發送訊息到同個channel。&lt;/p&gt;</description></item><item><title>Nchan - 發佈者(Publisher)設定</title><link>https://blog.iphpo.com/blog/2018/04/%E7%99%BC%E4%BD%88%E8%80%85publisher%E8%A8%AD%E5%AE%9A/</link><pubDate>Thu, 05 Apr 2018 05:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/%E7%99%BC%E4%BD%88%E8%80%85publisher%E8%A8%AD%E5%AE%9A/</guid><description>&lt;h1 id="發佈者40publisher41設定"&gt;發佈者(Publisher)設定&lt;/h1&gt;
&lt;p&gt;可以從之前章節發現，要讓某個位置成為發佈的端點，只需要加入&lt;code&gt;nchan_publisher&lt;/code&gt;的關鍵字，至於要發送到哪個channel則是設定&lt;code&gt;nchan_channel_id&lt;/code&gt;跟&lt;code&gt;nchan_channel_group&lt;/code&gt;即可。&lt;/p&gt;
&lt;p&gt;除了使用WebSocket發送訊息之外，Nchan還提供一般的HTTP POST方式發送訊息，以下用curl作為範例。&lt;/p&gt;
&lt;p&gt;假設在&lt;code&gt;/pub&lt;/code&gt;位置設定了publisher&lt;/p&gt;</description></item><item><title>Nchan - 訂閱者(Subscriber)設定</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%80%85subscriber%E8%A8%AD%E5%AE%9A/</link><pubDate>Thu, 05 Apr 2018 04:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E8%A8%82%E9%96%B1%E8%80%85subscriber%E8%A8%AD%E5%AE%9A/</guid><description>&lt;h1 id="訂閱者40subscriber41設定"&gt;訂閱者(Subscriber)設定&lt;/h1&gt;
&lt;p&gt;Nchan提供多種訂閱方式，包括&lt;a href="https://nchan.io/#websocket"&gt;WebSocket&lt;/a&gt;、&lt;a href="https://nchan.io/#eventsource"&gt;EventSource&lt;/a&gt;、&lt;a href="https://nchan.io/#long-polling"&gt;Long Poll&lt;/a&gt;、&lt;a href="https://nchan.io/#interval-polling"&gt;Interval-Poll&lt;/a&gt;、&lt;a href="https://nchan.io/#http-chunked-transfer"&gt;HTTP Chunked Transfer&lt;/a&gt;、&lt;a href="https://nchan.io/#http-multipart-mixed"&gt;HTTP multipart/mixed，&lt;/a&gt;但我只有使用過WebSocket，所以會以WebSocket為主，若對其他方式有興趣的可以到&lt;a href="https://nchan.io"&gt;nchan官方&lt;/a&gt;網站上查看。&lt;/p&gt;
&lt;p&gt;經過前面幾個章節，大家一定都已經知道，要讓某個位置變成可訂閱，只需要加上&lt;code&gt;nchan_subscriber&lt;/code&gt;的關鍵字&lt;/p&gt;</description></item><item><title>Nchan - 頻道 Channel ID</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E9%A0%BB%E9%81%93-channel-id/</link><pubDate>Sun, 01 Apr 2018 03:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E9%A0%BB%E9%81%93-channel-id/</guid><description>&lt;h1 id="頻道-channel-id"&gt;頻道 Channel ID&lt;/h1&gt;
&lt;p&gt;經過以上實作&lt;/p&gt;
&lt;p&gt;可以發現channel id是nchan流通資訊的識別ID&lt;/p&gt;
&lt;p&gt;所以在設定channel id時就特別重要&lt;/p&gt;
&lt;p&gt;以下提供三種設定方式&lt;/p&gt;</description></item><item><title>Nchan - 頻道 Group ID</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E9%A0%BB%E9%81%93-group-id/</link><pubDate>Sun, 01 Apr 2018 02:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E9%A0%BB%E9%81%93-group-id/</guid><description>&lt;h1 id="頻道-group-id"&gt;頻道 Group ID&lt;/h1&gt;
&lt;p&gt;Group ID是用來輔助Channel ID的，在某些設計下，channel ID會有重複的情況，Group ID則是避免在Channel ID重複下，彼此收到同樣的訊息。&lt;/p&gt;</description></item><item><title>Nchan 基礎設定實作</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A%E5%AF%A6%E4%BD%9C/</link><pubDate>Sun, 01 Apr 2018 01:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A%E5%AF%A6%E4%BD%9C/</guid><description>&lt;h1 id="基礎設定實作"&gt;基礎設定實作&lt;/h1&gt;
&lt;p&gt;我們把剛剛提到的基礎設定放進nginx，並用docker跑起來實驗看看&lt;/p&gt;
&lt;p&gt;直接修改 nginx.vh.default.conf 並加入&lt;/p&gt;</description></item><item><title>Nchan 基礎設定</title><link>https://blog.iphpo.com/blog/2018/04/nchan-%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A-basic-setting/</link><pubDate>Sun, 01 Apr 2018 00:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/04/nchan-%E5%9F%BA%E7%A4%8E%E8%A8%AD%E5%AE%9A-basic-setting/</guid><description>&lt;h1 id="基礎設定"&gt;基礎設定&lt;/h1&gt;
&lt;p&gt;nchan提供了pub/sub的功能，所以最主要設定也會圍繞在這兩者之上&lt;/p&gt;
&lt;p&gt;最基礎的設定，就是指定兩個固定位置，提供pub/sub的功能&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;#...
http { 
 server {
 #...

 location = /sub {
 nchan_subscriber;
 nchan_channel_id $arg_id;
 }

 location = /pub {
 nchan_publisher;
 nchan_channel_id $arg_id;
 }
 }
}
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;這裡使用query string(get參數)id當作channel id&lt;/p&gt;</description></item><item><title>Nchan安裝 - 使用Docker</title><link>https://blog.iphpo.com/blog/2018/03/%E4%BD%BF%E7%94%A8docker%E5%95%9F%E5%8B%95-install-nchan-docker/</link><pubDate>Mon, 26 Mar 2018 05:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/03/%E4%BD%BF%E7%94%A8docker%E5%95%9F%E5%8B%95-install-nchan-docker/</guid><description>&lt;h1 id="使用docker啟動"&gt;使用Docker啟動&lt;/h1&gt;
&lt;h2 id="使用別人製作好的image"&gt;使用別人製作好的image&lt;/h2&gt;
&lt;p&gt;可以使用我製作好的docker image&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -p 80:80 herb123456/nchan-alpine
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Google後有其他人也有製作nchan的docker image&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;docker run -p 80:80 meroje/alpine-nchan
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;只是版本還停留在1.1.5&lt;/p&gt;
&lt;h2 id="從nginx官方docker-file修改40建議41"&gt;從nginx官方Docker file修改(建議)&lt;/h2&gt;
&lt;p&gt;自己修改dockerfile不僅自由度高，掌握度也比較高，而且也不難，讓我們先看看nginx官方dockerfile長怎樣吧。&lt;/p&gt;</description></item><item><title>Nchan安裝 - 編譯原始碼</title><link>https://blog.iphpo.com/blog/2018/03/nchan%E5%AE%89%E8%A3%9D-%E7%B7%A8%E8%AD%AF%E5%8E%9F%E5%A7%8B%E7%A2%BC-install-nginx-from-source/</link><pubDate>Mon, 26 Mar 2018 04:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/03/nchan%E5%AE%89%E8%A3%9D-%E7%B7%A8%E8%AD%AF%E5%8E%9F%E5%A7%8B%E7%A2%BC-install-nginx-from-source/</guid><description>&lt;h1 id="編譯原始碼"&gt;編譯原始碼&lt;/h1&gt;
&lt;p&gt;以下流程皆是在CentOS 7下進行，其他系統雖有不同，但都大同小異。&lt;/p&gt;
&lt;h2 id="編譯前的準備"&gt;編譯前的準備&lt;/h2&gt;
&lt;p&gt;安裝編譯所需套件&lt;/p&gt;</description></item><item><title>安裝Nchan</title><link>https://blog.iphpo.com/blog/2018/03/%E5%AE%89%E8%A3%9Dnchan/</link><pubDate>Mon, 26 Mar 2018 03:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/03/%E5%AE%89%E8%A3%9Dnchan/</guid><description>&lt;h1 id="安裝nchan"&gt;安裝Nchan&lt;/h1&gt;
&lt;p&gt;安裝方法有三種&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;用套件管理程式安裝&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/03/nchan%E5%AE%89%E8%A3%9D-%E7%B7%A8%E8%AD%AF%E5%8E%9F%E5%A7%8B%E7%A2%BC-install-nginx-from-source/"&gt;編譯原始碼&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://blog.iphpo.com/blog/2018/03/%E4%BD%BF%E7%94%A8docker%E5%95%9F%E5%8B%95-install-nchan-docker/"&gt;使用Docker&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;選擇適合自己的方式即可&lt;/p&gt;</description></item><item><title>Nchan 特色</title><link>https://blog.iphpo.com/blog/2018/03/nchan-%E7%89%B9%E8%89%B2/</link><pubDate>Mon, 26 Mar 2018 02:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/03/nchan-%E7%89%B9%E8%89%B2/</guid><description>&lt;h1 id="nchan-特色"&gt;Nchan 特色&lt;/h1&gt;
&lt;h2 id="nchan-簡介"&gt;Nchan 簡介&lt;/h2&gt;
&lt;p&gt;Nchan是Nginx與Channel兩個字的新造字，顧名思義Nchan是一個Nginx的module，所以帶有Nginx的可擴展性，與多種服務結合的高彈性，甚至可輕鬆與現有後端程式結合，並支援將訊息暫存在記憶體、檔案或Redis內，不僅提高訊息傳遞效率，與Redis Cluster結合更可達到無縫水平擴展的強大韌性。&lt;/p&gt;</description></item><item><title>即時通知系統簡介</title><link>https://blog.iphpo.com/blog/2018/03/%E5%8D%B3%E6%99%82%E9%80%9A%E7%9F%A5%E7%B3%BB%E7%B5%B1%E7%B0%A1%E4%BB%8B/</link><pubDate>Mon, 26 Mar 2018 01:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/03/%E5%8D%B3%E6%99%82%E9%80%9A%E7%9F%A5%E7%B3%BB%E7%B5%B1%E7%B0%A1%E4%BB%8B/</guid><description>&lt;h1 id="即時通知系統簡介"&gt;即時通知系統簡介&lt;/h1&gt;
&lt;p&gt;即時通知系統，顧名思義，就是在 發佈者（Publisher） 發佈訊息時能立即通知所有 訂閱者（Subscriber），實際例子就像Facebook的訊息牆，只要好友發了一則動態，我不必重新整理頁面，即可立即收到通知，我的好友即是發佈者，而我則是訂閱者。&lt;/p&gt;
&lt;p&gt;在過去（約十幾年前），要達到這樣的效果，必須讓Client端不斷向伺服器發出詢問，才能在短時間內知道變化，此種方法耗費大量無謂的系統資源，最差情況是從上線到下線都無任何新訊息，但Client卻向伺服器發出了上萬次的請求，最終都得到無任何變化的回覆，此種方式稱為Polling。&lt;/p&gt;</description></item><item><title>利用 Nchan 快速打造即時聊天系統</title><link>https://blog.iphpo.com/blog/2018/03/%E5%88%A9%E7%94%A8-nchan-%E5%BF%AB%E9%80%9F%E6%89%93%E9%80%A0%E5%8D%B3%E6%99%82%E8%81%8A%E5%A4%A9%E7%B3%BB%E7%B5%B1/</link><pubDate>Mon, 26 Mar 2018 00:00:00 +0800</pubDate><author>herb09638@gmail.com (Herb)</author><guid>https://blog.iphpo.com/blog/2018/03/%E5%88%A9%E7%94%A8-nchan-%E5%BF%AB%E9%80%9F%E6%89%93%E9%80%A0%E5%8D%B3%E6%99%82%E8%81%8A%E5%A4%A9%E7%B3%BB%E7%B5%B1/</guid><description>&lt;h1 id="利用-nchan-快速打造即時聊天系統"&gt;利用 Nchan 快速打造即時聊天系統&lt;/h1&gt;
&lt;p&gt;此一系列文章，將教導大家如何使用 Nchan 融入現有系統，極快速的時間將未有 Server push 的傳統 Web Application，瞬間變成可主動通知使用者的即時通知系統。&lt;/p&gt;</description></item></channel></rss>