賺錢是靠變現的能力,能力是靠”刻意的訓練”
學習不能停看聽,關鍵在于”狠狠”的去執行!
社群變現入門通道,火速加我並回覆888,手把手帶你執行!
我只拿到5個名額,要快!
邀你入群再送網路贏銷20招..招招實用!
希望所分享的各種相關資訊, 大家可以從這裡可以獲得些些小許的協助, 也算是回饋做法...會陸續的增加內容唷~
賺錢是靠變現的能力,能力是靠”刻意的訓練”
學習不能停看聽,關鍵在于”狠狠”的去執行!
社群變現入門通道,火速加我並回覆888,手把手帶你執行!
我只拿到5個名額,要快!
邀你入群再送網路贏銷20招..招招實用!
因為不想廢話,這裡就不解釋什麼是WebSocket了XD,進入正題
這裡直接使用Github上的websockets/ws項目,它直接使用了express做為項目,所以我們也一起跟著用吧XD
連結在這 https://github.com/websockets/ws
這裡我只寫我做的結果,所有的內容會放到github上,也會給上連接
Server的code
假裝Server有一直在傳輸信息所以使用setInterval 代替
Client的code
執行server.js查看效果
Server console
Client page
Client console
完整的項目在這
https://github.com/cn27529/express-ws
收工
參考自
https://letswrite.tw/websocket/
https://medium.com/enjoy-life-enjoy-coding/javaScript-websocket-讓前後端沒有距離
1.安装docker jdk1.8
2.下载docker镜像
docker pull mongo
docker pull docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.5
docker pull graylog/graylog:3.1
3.分开启动3个组件(推荐)
# mongodb
docker run \
--name mongo \
-p 27017:27017 \
-v /etc/localtime:/etc/localtime:ro \
-v mongo_data:/data/db \
-d mongo:latest
# elasticsearch
docker run \
--name elasticsearch \
-p 9200:9200 -p 9300:9300 \
-e "http.host=0.0.0.0" \
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-e http.cors.allow-origin="*" \ (设置跨域)
-e http.cors.enabled=true \
-v /etc/localtime:/etc/localtime:ro \
-v es_data:/usr/share/elasticsearch/data \
-d docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.5
# graylog
docker run \
--link mongo \
--link elasticsearch \
--name graylog \
-p 9000:9000 \
-p 12201:12201 -p 12201:12201/udp \
-p 1514:1514 -p 1514:1514/udp -p 5044:5044 \
-e GRAYLOG_HTTP_EXTERNAL_URI=http://{改成你的主機IP}:9000/ \
-e GRAYLOG_ROOT_TIMEZONE=Asia/Shanghai \
-e GRAYLOG_WEB_ENDPOINT_URI="http://{改成你的主機IP}:9000/:9000/api" \
-e GRAYLOG_PASSWORD_SECRET=somepasswordpepper \
-e GRAYLOG_ROOT_PASSWORD_SHA2=8c6976e5b5410415bde908bd4dee15dfb167a9c873fc4bb8a81f6f2ab448a918 \
-v /etc/localtime:/etc/localtime:ro \
-v graylog_journal:/usr/share/graylog/data/journal \
-d graylog/graylog:3.1
<% %>流程控制標簽 //例 <% var user.name = 'bruce - huang' %> <% if(user.name !== null) { %> <div>hi <%= user.name %></div> <% } else { %> <div>no user name</div> <% } %> <%= %>输出標簽(原文输出HTML標簽) //例 <% var user.name = 'bruce - huang' %> <%= user.name %> <%- %>输出標簽(HTML会被浏览器解析) //例 <%- data.htmlContent %> <%# %>注释標簽 //例 <%# 我是注解,我不會被秀在源始碼上 %> -%>去掉沒用的空格 //例 <% var user.name = 'bruce - huang 看己去試吧, 我是不知道他怎知道什麼叫沒用的空格XD' %> <%= user.name -%> ejs中的邏輯代碼全部用JavaScript
pm2 start app.js # Start app.js
pm2 start app.js -- -a 23 # Pass arguments '-a 23' argument to app.js script
pm2 start app.js --name serverone # Start a process and name it as serverone
# you can now stop the process by doing
# pm2 stop serverone
別名其實是很方便的東西...