Tag: 长查询

nodejs-无法获取从客户端发送的值

我正在创build一个Node服务器,它将执行长轮询并从MySql数据库读取数据,并通过WebSocket将其发送到连接到套接字的许多客户端。 我正在学习这个教程 它正在工作(它长时间轮询并将数据返回给客户端),但不是我所期望的。 在我的系统中,每个用户都有唯一的用户ID(主键字段)。 所以我试图通过这个userId到服务器,并返回属于一个用户的通知。 我的客户端代码是用纯JavaScript编写的,看起来像这样: <script> // create a new websocket var socket = io.connect('http://localhost:8000'); var params={ userId : 1 }; socket.emit('myotherevent', { user: params }); // on message received we print all the data inside the #container div socket.on('notification', function (data) { console.log(data); }); </script> 正如你所看到的,我试图通过userId,但我无法在服务器端获取。 这里是我提取它的代码部分。 // creating a new websocket to […]

Node.js长轮询事件循环打破了整个代码

我完全是编程新手,在开发我的网站的这个阶段,我需要设置一个简单的长轮询请求,从db获取最新消息,然后将它们展示给客户端。 我最后一天创build了一个消息系统,现在它保存了消息和用户之间所有需要关系的消息。 这是我做的: var express = require('express'); var router = express.Router(); var Conversation = require('../models/conversation'); var Promise = require('promise'); // Get Homepage router.get('/', function(req, res){ res.render('index'); }); var messages = []; router.get('/inbox', function(req, res){ var promise = new Promise(function (resolve, reject) { req.user.conversations.forEach(function(id){ Conversation.getConversationById(id, function(err, conv){ if (conv){ messages.push(conv); if(messages.length == req.user.conversations.length){ resolve(messages); messages = […]

使用node.js进行长轮询以获取数据库更新

我对Node JS相当陌生,当我从java服务器页面切换到节点主要是为了实现服务器推送技术。 我想实现一个简单的应用程序,如果在Mysql数据库中发生任何新logging插入,就会将数据推送给用户。 取数据库名称为wst,表名为registered_people,表由一列名为users的列组成。 知道是否有任何logging被插入到表中,它应该通知新用户被添加到当前用户。 我怎样才能做到这一点。 谢谢你的帮助。