Tag: 聊天

Node.JS:如何创build一个HTTP聊天服务器?

使用networkingstream对象与TCP工程伟大(作为presetend在node.js介绍video ),但我应该如何做到这一点在HTTP? 有没有办法访问http.createServer()内的套接字/客户端? 或者有什么办法呢? 我试图从官方节点聊天演示 源代码中找出解决scheme,但我不明白。 我了解客户端JS,但是我(作为客户端)通过AJAX发送消息到服务器端JS后发生了什么? 我怎样才能发送给服务器上的其他客户呢? 请注意,我不想学习过程的逻辑,所以我不想使用socket.io或任何其他框架,库,模块。 非常感谢您的帮助!

如何用Socket.io和Node.js开发一个大型的聊天应用程序

在过去的几个月中,我一直在使用Socket.io,开发一个相当复杂的聊天室,踢/禁止/版主/朋友等应用程序。 在开发过程中,我重写了这个应用程序好几次,而且还在为我的代码而战。 我非常喜欢JavaScript,但是我发现在应用程序不断增长的时候很难保持它。 我已经阅读了大量有关如何编写聊天应用程序的“教程”,但都涵盖了最基本的方面。 GitHub上的所有示例应用程序也是如此,甚至是我在网上find的大多数聊天应用程序(其中大多数只是简单的即时消息,没有任何用户pipe理)。 有些用例对我来说太荒谬了,比如踢一个房间的用户。 主持人点击一个踢button – >发送事件到服务器 服务器将用户名与套接字配对(或者只是广播给所有用户,并在客户端进行过滤) – >发送给他踢的事件 用户向服务器发出注销事件,并且还显示他被踢的消息(注销只是我执行的处罚) 用户将从聊天室的用户列表中删除 – >将当前用户列表发送给房间中的所有用户 这似乎不太复杂,但是当我添加所有在客户端发生的callback来pipe理UI(因为我使用AngularJS,我使用事件在控制器之间进行通信)以及服务器端的大量callback,因为一切都是非阻塞的,我觉得这个testing真的很难。 在客户端还有另外一个问题,我必须在多个地方监听套接字事件,所以我必须有一种单例全局套接字对象,并在多个地方挂接事件监听器。 我做错了什么,或者是这个callback地狱的工作与websockets没有办法的结果吗? 有没有什么方法可以使开发这样的应用程序更容易? 例如替代技术到Socket.io? 到目前为止,我只find了5个月前上次提交的NowJS和meteor ,这真的很酷,但是看看网站看起来并不稳定。

socket.io与私人房间聊天

我开始研究节点和socket.io。 我已经创build了一个简单的聊天应用程序,我很惊讶它是多么容易。 现在,我想进一步介绍一下在线用户列表,这些用户可以私下聊天。 什么是最好的方法来解决这个问题? 我读了0.7的新房间function。 那会是一条路吗? 每次有2个用户需要私下聊天时dynamic地创build一个新房间? 但是第二个用户将如何被通知创build的新房间,以便他可以连接到那里? 处理所有上述逻辑是否更好? 存储房间和用户服务器端,每次循环通过它们,并发送消息到适当的? 谢谢

Node.jsvideo聊天应用程序

你将如何使用node.js实现video聊天应用程序? 任何资源(教程,书籍,链接)或一般的游戏规划/策略将不胜感激

什么是用socket.iopipe理多个聊天室的正确方法?

什么是用socket.iopipe理多个聊天室的正确方法? 所以在服务器上会有这样的: io.sockets.on('connection', function (socket) { socket.on('message', function (data) { socket.broadcast.emit('receive', data); }); }); 现在,这可以在一个房间里正常工作,因为它将信息传达给所有相关的人。 你如何发送消息给在特定聊天室的人呢? 添加.of('/ chat / room_name')? 或者把每个人都放在一个房间里?

使用node.js和socket.io创build密钥之间的私人聊天

如何使用node.js和socket.io向共享conversation_id的私人聊天中的所有用户发送消息? var express = require('express'), app = express(), server = require('http').createServer(app), io = require('socket.io').listen(server); conversations = {}; app.get('/', function(req, res) { res.sendfile('/'); }); io.sockets.on('connection', function (socket) { socket.on('send message', function (data) { var conversation_id = data.conversation_id; if (conversation_id in conversations) { console.log (conversation_id + ' is already in the conversations object'); // emit the message […]

PHP的Socket服务器与node.js:networking聊天

我想要使​​用长时间的HTTP请求(Comet),ajax和websockets(取决于使用的浏览器)来编写HTTP WebChat。 用户数据库是在MySQL中。 聊天是用PHP编写的,除了也可以用javascript(node.js)写的聊天stream本身: 我不想为每个用户启动一个php进程,因为在这些php孩子之间没有好的方式发送聊天消息。 所以我想写一个自己的套接字服务器在PHP或node.js应该能够处理超过1000个连接(聊天用户)。 作为一个纯粹的Web开发人员(PHP)我不太熟悉套接字,因为我通常让Web服务器关心连接。 聊天消息不会被保存在磁盘上,也不会保存在mysql中,而是保存在RAM中作为数组或对象以获得最佳的速度。 据我所知,在单个php进程(套接字服务器)中,无法同时处理多个连接,但是您可以接受大量的套接字连接,并在循环中连续处理它们(读取和写入;传入消息 – >写入所有套接字连接)。 问题是,最有可能是一个滞后的约1000用户和MySQL操作可以放慢整个事情,这将影响所有的用户。 我的问题是:node.js可以处理性能更好的套接字服务器吗? Node.js是基于事件的,但我不确定它是否可以同时处理多个事件(不需要multithreading?),或者只有一个事件队列。 有了事件队列,它就像php:用户之后的进程用户。 我也可以在每个聊天室产生一个php进程(用户less得多),但是afaik有单线程的IRC服务器,它们也能够处理成千上万的用户。 (用C ++或其他)写的,所以也许这也可能在PHP中。 我宁愿使用PHP,而不使用Node.js,因为那样的话,这个项目将只是php而不是编程语言的混合体。 但是,如果节点可以同时处理连接,我可能会select它。