我的目標是建立一個聊天應用 - 類似WhatsApp的要知道關於socket.io和Redis的和nginx的東西
據我瞭解,socket.io是寫在一個實時通信庫中的JavaScript和它是使用
例如
// Serverside
io.on('connection', function(socket) {
socket.on('chat', function(msg) {
io.emit('chat', msg);
});
});
// ClientSide (Using jquery)
var socket = io();
$('form').submit(function(){
socket.emit('chat', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat', function(msg){
$('#messages').append($('<li>').text(msg));
});
1)我總是需要啓動一個io.on('connection')
使用實時功能,或者我可以重新使用socket.on
對象,而不是很簡單呢?例如我有一條路由
app.post('/postSomething', function(req, res) {
// Do i need to start an io.on or socket.on here?
});
因爲我希望實時功能只能在特定路由上監聽。
2)Redis是一個處理pub/sub的數據結構庫,爲什麼我們需要使用pub/sub機制? 我讀了很多文章,但無法理解這個概念。第二十例如http://ejosh.co/de/2015/01/node-js-socket-io-and-redis-intermediate-tutorial-server-side/
例如下面
// Do i need redis for this, if so why? is it for caching purposes?
// Where does redis fit in this code?
var redis = require("redis");
var client = redis.createClient();
io.on('connection', function(socket) {
socket.on('chat', function(msg) {
io.emit('chat', msg);
});
});
3)只是想知道爲什麼我需要nginx的規模node.js的應用程序的代碼?我發現這個計算器的答案: Strategy to implement a scalable chat server
它說一些關於負載均衡,閱讀,網上,無法把握的概念也是如此。
到目前爲止,我只處理node.js,貓鼬簡單的CRUD應用程序,但我願意努力工作,如果你們可以分享一些你的知識並分享一些有用的資源,以便我可以加深我的知識關於所有這些技術。
乾杯!
你有3個問題;發佈他們作爲三個單獨的問題堆棧溢出,這將幫助你得到答案 –
@BasitAnwer之所以我問一切在一個問題,因爲我必須等待90分鐘的每個問題 –
@BasitAnwer如果你能幫助我,並回答問題,這將是非常有幫助 –