7

是否可以允许两个客户端在没有服务器的情况下直接交互?

我指的是网站,例如,是否可以在同一网站上的两个客户端之间仅使用客户端创建聊天javascript

如果不是,那么在网站上的活动客户端之间进行聊天的最低服务器端是什么?(例如:一个PHP文件,没有数据库)?

我的想法:在每个客户端上都 可以轻松地存储对话localStorage,问题是如何在不存储任何东西(或最多该消息)的情况下将一些数据发送client1到数据库中。client2另外,请注意“过去的”对话不应该可见,因此不需要存储。

请注意,我不想要任何 nodeJS 或 websocket 解决方案,我想要尽可能简单的东西。那么,在在线用户之间进行聊天code的最低要求是什么?files

4

3 回答 3

3

WebRTC API将允许 JavaScript 发起浏览器到浏览器的直接连接,但仍然需要服务器来提供页面并协调会话发起。

API 仍在快速发展,仅在最先进的浏览器中可用,因此尚未准备好用于实际生产用途。

然而——老实说——对于你想要做的事情,最简单的选择是 Node 和 socket.io:

var http=require('http'), express=require('express'), sio = require('socket.io')
    , app=express(), srv = http.createServer(app);

app.use(express.static(__dirname+'/static'));

sio.listen(srv);
srv.listen(80);

...现在你有一个 5 行的工作 websockets 服务器。将所有客户端的东西放在静态文件夹中,你就可以开始了。

于 2013-03-21T15:34:39.597 回答
0

不,这是不可能的。如果你想要一个聊天框,你必须将数据存储在服务器中。连接客户端的东西,比如向每个客户端显示聊天文本和相同的东西,它们来自服务器。所以不可能那样做。好吧,即使是免费的聊天框也将每个站点的数据放在他们的服务器中。

至于您使用的想法localStorage,也许它是可能的(但仍然使用新的 WebSocket 协议),但它在时间维度上不起作用,对吧?如果另一个用户加入,他们将看不到之前发送的内容。

于 2013-03-21T15:20:46.410 回答
0

HTML5 有一个新的Web Sockets 特性

这样,服务器干预几乎无效。服务器和客户端通过新协议进行通信

  • ws - Web 套接字协议
  • wss - Web Sockets 安全协议(类似于 https)

现场演示

于 2013-03-21T15:25:01.610 回答