允许两个客户端在没有服

时间:2013-03-21 15:16:04

标签: javascript chat

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

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

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

我的想法: 使用localStorage在每个客户端上轻松完成存储会话,问题是如何将一些数据从client1发送到client2而不在数据库中存储任何内容(或最多该消息) 。另请注意,“过去”对话不应该可见,因此不需要存储空间。

请注意,我不想要任何nodeJS或websocket解决方案,我希望尽可能简单。那么,在线用户之间进行聊天的最低codefiles是多少?

3 个答案:

答案 0 :(得分: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服务器。把所有客户端的东西放在静态文件夹中,你就可以了。

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

HTML5有一个新的Web Sockets feature

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

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

Live demo