Tag: 聊天

如何在节点js中运行两个程序

我正在学习Nodejs。 我想在URL中运行两个脚本(一个是login,另一个是聊天)。 当我运行npm start命令时,我的login页面打开,当我运行节点index.js命令,然后我的聊天应用程序工作。 我想让我的聊天应用程序在login后工作。 所以,我应该指定我的聊天索引,所以它将工作。 我的app.js在这里 var http = require('http'); var express = require('express'); var session = require('express-session'); var bodyParser = require('body-parser'); var errorHandler = require('errorhandler'); var cookieParser = require('cookie-parser'); var MongoStore = require('connect-mongo')(session); var routes = require('./routes/index'); var users = require('./routes/users'); var app = express(); app.set('port', process.env.PORT || 3000); app.set('views', __dirname + '/app/server/views'); […]

我怎样才能保持套接字连接从一个窗口到另一个?

我对socket.io相当陌生,但是真的很享受。 我正在使用MEAN堆栈,并开始玩socket.io。 我发现套接字连接已连接到窗口,所以刷新完成后,连接已经死亡。 有了这个说法,我试图实现一个简单的聊天function,类似于他们在socket.io入门选项卡上显示的function,相当容易。 但是,我点击这个聊天button之前,我的连接已经创build。 我想在新窗口中打开聊天窗口,并为以前连接的个人提供聊天。 这是可能的,我怎么能实现这样的function? 我从规划的angular度问,真的不要在这里发布我的代码。 我的代码非常类似于Hello World socket.io聊天应用程序,但我只想保持从一个窗口到下一个窗口的连接。

移动我的聊天应用程序在常规的URL而不是本地主机

我已经做了一个聊天服务器,端口80听我的网站,所以每次我想访问我的网站,我必须打开本地主机:80,但我想访问我的网站的常规页面,并给它相同的聊天function,我只是build成。 例如,我想在打开mysite.com/page.php时显示我的聊天function。 我怎么做? 因为打算打开我的网站的人将打开我的url,我很困惑如何将该聊天应用程序从本地主机移动到我的真实网站。

麻烦连接webhook到Facebook messenger bot

我正在尝试使用NodeJS,Express和一个heroku服务器创build一个Facebook chatbot。 我在heroku上创build了我的webhook,并通过Facebook进行了validation和保存。 然后我运行这个代码来连接我的webhook到Facebook。 curl -ik -X POST "https://graph.facebook.com/v2.6/me/subscribed_apps?access_token=<token>" 这个返回{success:true}。 所以然后我开始添加回复传入消息的代码,但我似乎无法连接。 每当我发送消息,我都没有回复。 这是我的代码: var express = require('express'); var bodyParser = require('body-parser'); var request = require("request") var app = express(); var port = process.env.PORT || 3000; // body parser middleware app.use(bodyParser.urlencoded({ extended: true })); app.get('/', function (req, res) { if (req.query['hub.verify_token'] === '8FKU9XWeSjnZN4ae') { res.send(req.query['hub.challenge']); console.log("app.get […]

聊天/系统通讯应用程序(Nodejs + RabbitMQ)

所以我现在有一个运行NodeJS的聊天系统,通过兔子传递消息,每个连接的用户有自己的唯一队列订阅,只有听消息(只有他们)。 后端也可以使用这个聊天pipe道来传递其他系统消息,如通知/好友请求和其他用户事件驱动的信息。 目前,即使消息的有效载荷相同,比如说1000个用户,后端也必须循环发布每个消息1个用户。 我想摆脱这一点,并能够发送相同的消息给多个不同的用户,但不是每个连接的用户。 (例如:通知某些用户他们的朋友已经联机)。 我考虑实现一个兔子队列系统,在这个系统中,所有的消息被汇集到同一个队列中,而不是兔子发送所有的用户队列,节点接收这些消息,并通过套接字连接(向谁在线)发送消息给适当的用户。 build议 – 基础设施 这样后端不需要为100和1000的用户循环,并且可以发送包含这个消息应该去往的所有用户的单个有效载荷。 我打算将nodejs服务器集中在一起。 我也想知道,因为从来没有做过这样的生产环境,我需要跟踪每个socketID。 到目前为止,我已经发现了潜在的缺陷: 由于1000条消息可以堆积在一个队列中,因此速度较慢。 手动存储套接字ID以手动传送给用户。 将路由卸载到NodeJS而不是RabbitMQ 有没有人做过这样的事情? 如果是这样,你有什么build议。 使用用户唯一队列进行扩展还是比较好?或者将所有用户的所有分组消息汇集到较小(但较大的队列)的队列中。

通过websocket添加聊天,到现有的PHPnetworking应用程序

我在标准的PHP / Apache平台上有一个现有的Web应用程序。 现在,我想要的是添加聊天function,我希望它是实时的通过websocket,并扩展我已经研究了一点nodeJs上的socket.io。 因此,除了运行大型PHP应用程序的Apache之外,我还会使用socket.io运行聊天的nodejs。 但是我真的不明白的是,如何在nodejs聊天的代码中识别我的用户呢? 首先,Apache和nodejs将无法在同一个端口上运行,这意味着我将在端口8080上运行聊天,例如,在这种情况下,我丢失了用户的cookies,这意味着我现在必须要求他们login再次在这个nodejs-powered端口,如果他们想使用聊天? 看起来很荒谬,但是我不知道要走哪条路。 当然,我无法将我的整个代码移植到nodejs上。 所以理想情况下,我会希望Apache和nodejs共存。 或者我完全误解了聊天应该如何在networking应用程序中工作。 任何提示赞赏。

Google App Engine和Socket.IO上的Mobile Chat应用程序

我正在用Node.JS的Socket.IO创build一个聊天应用程序,有几件事我需要澄清。 我在我的应用程序中实现了离线消息,这意味着当用户打开应用程序时,他将收到他在线时错过的所有消息。 这是我的做法: 1)客户端打开应用程序并订阅/join房间2)客户端向Socket.IO发送消息3)Socket.IO在某种数据库/数据存储中插入消息4)当客户端试图检索消息时从数据库/数据存储中拉出并保存在用户电话上,然后将其从数据库中删除。 这是一个正确的方法吗? 我在网上看,有人build议使用任务/消息队列,如谷歌应用引擎任务队列,但我不知道这是如何工作的。

使用Node.js创build便携式在线聊天应用程序是否可行?

我想知道是否有可能使用Node.js制作一个便携式聊天应用程序。 我的意思是说,如果有一个提供Node.js聊天服务的中央网站,用户可以获取脚本代码(不pipe是基于JavaScript还是iframe ),并在他们的网站上发布聊天程序。 假设这个应用程序托pipe在chatServer.com 例如,如果用户有一个ID为chatScreen足够的表单input,并链接chatServer.com脚本之一 要么 用户可以只是iframe的聊天页面。 (例如:chatServer.com/chat/room/roomName) 要么 使用闪光灯瑞士法郎将其移入页面。 如果我没有记错的话,JSON数据不能在不同域之间交易。 你认为这个应用程序有可能吗? 我只是想知道是否可以build立它。 我看到了一些类似的networking聊天应用程序,它是用“Python twisted”+“swf”

实时聊天,不想丢失消息 – 使用队列(redis,zeromq)?

我有一个应用程序,有一些实时聊天。 聊天是在客户端和服务器端(nodejs)使用Faye实现的。 现在这个客户端聊天被用在rails应用程序中,当我的页面重新加载/刷新时,我不想丢失在以下情况下可能发生的消息: 我重新加载页面 我从DB获取聊天logging 聊天对方的用户写入5行 我呈现的页面 我错过了5个最近的logging 我想听听你对解决这个问题的意见。 我有一个类似于消息队列的东西,在那里没有传递给客户端的消息只是在那里等待,并在以后通过javascript来访问页面。 我也希望你的意见,如果有人证实,消息队列是适合使用zeromq或在redis中实现简单的队列,我已经使用(不想要很多技术)。

Node.js“净”连接负载均衡

我正在研究Node.jsnetworking库实现聊天服务器的潜力。 我对node.js非常陌生 我想知道如何在多个服务器间负载平衡到networkingTCP服务器的客户端连接(以处理大负载),并且可以将消息发送到服务器上的所有连接。 有任何服务器可以帮助吗? 或者我应该看看socket.io或其他库的实施?