【发布时间】:2015-11-30 11:39:24
【问题描述】:
我的目标是构建一个聊天应用程序 - 类似于 whatsapp
据我了解,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 应用程序?我找到了这个stackoverflow答案: Strategy to implement a scalable chat server
上面说了一些关于负载平衡的内容,在网上阅读,也无法理解这个概念。
到目前为止,我只处理 node.js ,猫鼬简单的 CRUD 应用程序,但如果你们能分享一些知识并分享一些有用的资源,我愿意努力工作,这样我就可以加深我的知识所有这些技术。
干杯!
【问题讨论】:
-
您有 3 个问题;将它们作为堆栈溢出的三个单独问题发布,这将帮助您获得答案
-
@BasitAnwer 为什么我在一个问题中提出所有问题,因为我必须为每个问题等待 90 分钟
-
@BasitAnwer 如果你能帮助我并回答这个问题,那真的很有帮助
-
已回答;但请不要这样做。如果有人知道 3 个问题中 2 个的答案,他/她可能会犹豫回答您的完整问题以及它是否违反 SO 规则。
标签: node.js nginx socket.io node-redis socket.io-1.0