【问题标题】:Communications with Two user Ip与两个用户 Ip 的通信
【发布时间】:2012-05-25 00:35:21
【问题描述】:

在站点中与两个用户进行通信的任何方式? 像 user1 点击名称 user2(whith Ip) 并发送消息。我知道数据库和 ajax 可以保存消息并发送给 user2,但它速度慢且不适合。 我想要模拟私人聊天室并保存消息历史记录只要打开 jquery 对话框。 我找到了this,但我不知道是否合适。 有人知道吗?

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

site中的顶级代码

【问题讨论】:

  • 该代码用于 Node.js,它是一个服务器端 JavaScript 系统。因此,它本质上是一个“数据库和 ajax”的案例。
  • Websockets 是要走的路,但如果目标浏览器不支持,那么您别无选择,只能在发布出站消息时频繁调用 ajax 来轮询服务器以获取入站消息。
  • 我想要没有数据库的通讯。我可以使用 fopen,fwrite 吗?怎么样?

标签: php javascript jquery ajax node.js


【解决方案1】:

使用 WebSockets 可能是一个解决方案吗? http://www.websocket.org/

这适合聊天系统,所以您可以使用 Push 而不是 Pull 来检查消息?

【讨论】:

  • WebSockets 不支持许多浏览器,例如 firefox 。这是与客户端通信的服务器吗?
  • WebSockets 旨在与服务器通信,当数据可用时,多个客户端可以连接到服务器并接收通知。它目前还没有广泛使用,但是当 WebSockets 不可用时,您可以使用长轮询方法来代替。查看net.tutsplus.com/tutorials/javascript-ajax/…dsheiko.com/weblog/websockets-vs-sse-vs-long-polling 了解更多信息。
  • 但不支持所有ie版本
  • 如上所述,如果 WebSockets 不可用,那么您必须回退到正常的 Ajax 调用。另一种解决方案是使用基于 Flash 的后备。 github.com/gimite/web-socket-js
【解决方案2】:

使用socket.io - 它为糟糕的 IE 提供了 WebSockets 和一些备用方案

【讨论】:

  • 我没有推荐 socket.io,因为它是基于 Node.js 的解决方案。如果您有自己的专用服务器,您可以查看它,否则您可能会不走运。
  • 问题中有node.js标签。所以这是一个合法的答案恕我直言。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多