允许两个客户端在没有服务器的情况下交互
Allow two clients interact without server
是否可以允许两个客户端直接交互而不需要服务器?
我指的是网站,例如,是否有可能在同一个网站上的两个客户端之间创建一个聊天,仅使用客户端的javascript
。
如果不是,在一个网站的活跃客户端之间进行聊天的最小服务器端是什么?(例如:一个PHP
文件,没有数据库)?
我的想法:在每个客户端上使用localStorage
可以很容易地存储会话,问题是如何从client1
发送一些数据到client2
,而不需要在数据库中存储任何东西(或最多该消息)。另外,请注意"过去"的对话不应该可见,因此不需要存储。
请注意,我不想要任何nodeJS或websocket解决方案,我想要尽可能简单的东西。那么,在线用户之间进行聊天的code
和files
的最小值是多少?
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);
…现在你有一个工作的websockets服务器在5行。将所有客户端内容放到静态文件夹中,就可以开始了。
HTML5有一个新的Web Sockets特性
服务器和客户端通过新的协议 进行通信。- ws - Web Sockets协议
- wss - Web Sockets安全协议(类似于https)
现场演示
不,不可能。如果需要一个聊天框,则必须将数据存储在服务器中。连接客户端的东西,比如向每个客户端显示聊天文本和同样的东西,它们来自服务器。所以这是不可能的。即使是免费的聊天框也会把每个站点的数据放在它们的服务器上。
至于你的想法使用localStorage
,也许是可能的(但仍然,使用新的WebSocket协议),但它不工作在时间维度,对吧?如果另一个用户加入,他们将看不到之前发送的内容。
- AngularJS可以在没有任何服务器端技术的情况下将文件保存/写入服务器
- 跨来源请求被阻止-如何在没有访问服务器的情况下绕过它
- 如何在不使用处理程序的情况下使用ajax将文件从客户端发送到服务器端
- 是否可以在不使用服务器端脚本或编程的情况下在网页中进行实时视频流
- 如何在没有JQuery的情况下,通过对服务器的基本ajax调用,根据浏览器上的用户活动保持服务器会话活动
- 在不重新加载页面的情况下,从JSP(服务器端)b设置一个JavaScript变量
- typeaheadjs:如何在不使用缓存数据的情况下调用服务器
- 只使用jquery即可在没有服务器的情况下与两个页面进行即时通信
- 如何在没有Ajax的情况下将blob存储在表单中,并在单击提交时将其发送到服务器
- Nodejs-websocket:如何在没有服务器响应的情况下连续发送客户端消息
- 如何在没有web服务器的情况下将变量数据从Python传输到Javascript
- 在没有服务器端脚本的情况下跨多个页面链接导航栏
- 在不使用集合的情况下将服务器端计算返回到客户端
- 在没有插件的情况下验证验证码?-- 跨服务器开机自检
- 在没有 Web 服务器的情况下使用 Javascript 加载本地文件
- 在没有服务器根访问权限的情况下构建聊天脚本的有效方法是什么
- 反应:在没有本地服务器的情况下加载文件的跨源请求
- 如何在没有服务器端的情况下监视用户操作
- 如何在没有第三方库的情况下在服务器上以编程方式生成 Html
- 在不使用JS中的任何服务器的情况下读取文本文件