Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-

ポコロンダンジョンズとリアルタイム通信 -サーバサイド編-

Node.js、Socket.IOを利用したリアルタイム通信の開発と運用

https://atnd.org/events/76070
の発表資料です

Tweet

More Decks by CyberAgent SGE Engineer

Other Decks in Programming

Transcript

  1. w/HJOY   w1)1   w1IBMDPO   w.BSJB%#

      w3FEJT   w.FNDBDIFE  ར༻ٕज़ඇϦΞϧλΠϜ௨৴෦෼
  2. w /HJOY   w /PEFKT W  w 4PDLFU*0

     
 ΫϥΠΞϯτͷϥΠϒϥϦʹ߹ΘͤͯΛબ୒ɻ 
 ઀ଓ࣌ʹϋϯυγΣΠΫ͕஗Ԇͨ͠৔߹ʹҰఆظؒ
 ϋϯυγΣΠΫΛ଴ͭύονΛ౰ͯͯར༻͍ͯ͠Δɻ
 IUUQTHJUIVCDPNUJDPTPDLFUJPUSFFQBUDIFE  w 3FEJT  ར༻ٕज़ϦΞϧλΠϜ௨৴෦෼
  3. ‣ 3FEJTͷ1VC4VCͱ͸ w QVCMJTI ൃߦ ɺTVCTDSJCF ߪಡ ͷུ w Πϕϯτ͕ൃߦ͞ΕΔͱɺߪಡऀ΁௨஌͞ΕΔ

    ‣ ϚϧνϓϨΠͰͷར༻৔໘ w σʔλߋ৽௨஌ w ϓϨΠ৘ใͷಉظ ར༻ٕज़ϦΞϧλΠϜ௨৴෦෼
  4. w #*(*1੡ w 44-ରԠ w ϥ΢ϯυϩϏϯʴ*1QFSTJTUFODFઃఆ  ಉ͡*1ΞυϨε͸ɺಉ͡OPEFαʔό΁  QFSTJTUFODFͷΩϟογϡ࡟আִؒΛඵఔ౓

     ϚεΫ͸
 ࠷ۙ·ͰʹͳͬͯͯภΓ͕ɾɾɾ w TUJDLZTFTTJPOΛར༻
 4PDLFU*0ͷίωΫγϣϯཱ֬௨৴ʢൃ໨ʣΛಉ αʔόʹৼΔͨΊ αʔόߏ੒ϩʔυόϥϯα
  5. ‣ αϒωοτϚεΫ • 255.0.0.0ͷ৔߹
 ୈ̍ΦΫςοτͷΈͰৼΓ෼͚
 192.0.0.0ʙ192.255.255.255 
 IPΞυϨε਺ɿ16777216
 →ۉ౳ʹׂΓৼΒΕͳ͍ •

    255.255.255.255ͷ৔߹
 ୈ̐ΦΫςοτ·ͰৼΓ෼͚
 IPΞυϨε਺ɿ1
 →ۉ౳ʹׂΓৼΒΕΔ αʔόߏ੒ϩʔυόϥϯα
  6. ‣ /HJOY w ൪ϙʔτͰड͚ w ൪ϙʔτͰ/PEFKTʹྲྀ͠ࠐΉ w ϦόʔεϓϩΩγͰαϒυϝΠϯΛׂΓ౰ͯͨ /PEFKTʹৼΔ
 ‣

    /PEFKT w ϚελʔϓϩηεɺϫʔΧϓϩηε
 ˞ϫʔΧϓϩηε͕$MVTUFSߏ੒ʹͰ͖ͳ͔ͬͨ w GPSFWFSΛར༻͠ϓϩηεӬଓԽ αʔόߏ੒8FCαʔό
  7. server {
 listen 80;
 server_name localhost;
 index index.php index.html index.htm;


    set_real_ip_from 10.0.0.0/8;
 real_ip_header X-Forwarded-For;
 underscores_in_headers on; 
 location ^~ /pocolon_dungeons_node/ {
 proxy_pass http://127.0.0.1:3000/;
 proxy_http_version 1.1;
 proxy_set_header Upgrade $http_upgrade;
 proxy_set_header Connection 'upgrade';
 proxy_set_header Host $host;
 proxy_cache_bypass $http_upgrade;
 }
 location ^~ /pocolon_dungeons_node/socket.io/ {
 …
 }
 } /etc/nginx/conf.d/pocolon_dungeons_node.conf αʔόߏ੒8FCαʔό
  8. σʔλ3FEJTͷΩʔ Ϛονϯάݕࡧ༻ ιʔτࡁΈηοτܕ 
 Ґஔ৘ใɺϧʔϜ*%Λొ࿥ ϧʔϜ৘ใ༻ ϋογϡܕ 
 ϧʔϜৄࡉ৘ใΛొ࿥
 ɾμϯδϣϯ৘ใ


    ɾεςʔλε؅ཧ ϚονϯάதɺΫΤετத 
 ɾҐஔ৘ใ
 ɾΞϓϦόʔδϣϯ ϝϯόʔ৘ใ༻ ϋογϡܕ 
 σοΩ৘ใ ૷උϞϯελʔ ͳͲΛొ࿥
  9. ϩοΫ༻ จࣈྻܕ 
 ϧʔϜ৘ใɺϝϯόʔ৘ใͷΩʔΛߋ৽ ͢ΔࡍͷϩοΫʹར༻ɻ
 
 4&5/9 &91*3&
 4&5/9l4&5JG/PUF9JTUTz
 


    Ωʔ͕ଘࡏͨ͠Βηοτग़དྷͳ͍ͷΛར ༻͠ɺΩʔͷηοτͱ࡟আͰϩοΫΛ࣮ ݱɻ σʔλ3FEJTͷΩʔ
  10. ػೳॲཧͷྲྀΕ w ϧʔϜ࡞੒ࢀՃ
 1)1㱺/PEFKTͷҰ࿈ͷॲཧ͕׬ྃͯ͠ɺ8FCTPDLFUͷίω Ϋγϣϯཱ͕֬ग़དྷͨΒॲཧ׬ྃɻ w ΫΤετ։࢝
 1)1ଆͰ%#ʹొ࿥ޙɺ/PEFKTͰ଴ͪ߹ΘͤॲཧΛ͠ɺ ϚϧνϓϨΠ։࢝ɻ w

    ΫΤετத
 جຊతʹ8FCTPDLFU௨৴͕ͩɺ%#ૢ࡞͕ඞཁͳ৔໘ ͸1)1ଆͰॲཧ͞ΕΔɻ ίϯςΟχϡʔ౳  w ΫΤετऴྃ
 8FCTPDLFUͷίωΫγϣϯഁغޙɺ1)1ଆͰ%#ߋ৽ ͕ߦΘΕΔɻ
  11. ‣ 1)1ଆ w ϧʔϜ*%ͳͲΛड͚औΓ w 3FEJTσʔλߋ৽
 ϝϯόʔ৘ใʹࣗ਎Λ௥Ճ
 ˞ιέοτະ઀ଓεςʔλε w ϧʔϜ಺ͷϢʔβͷσοΩ৘ใͳͲදࣔ༻σʔλ

    Λฦ͢ ‣ /PEFKTଆ w Ϣʔβ*%ɺϧʔϜ*%ͳͲΛड͚औΓ w 3FEJTσʔλߋ৽
 ιέοτ઀ଓࡁΈεςʔλεʹߋ৽ w ߋ৽৘ใͳͲදࣔʹ࢖͏σʔλΛશϝϯόʔ΁௨஌ ػೳϧʔϜࢀՃ