1
A
回答
1
我觉得困惑来自概念,即一个Erlang的服务器进程必须活着的每一个人客户。它可以,但如果我没有弄错,Mochiweb不会默认这样做。它只是为每个请求产生一个新的进程。如果你想有一个长期居住的双向客户端< - >服务器进程连接,你可以做到这一点,例如通过;
- 发送客户端标识符与每个请求并将其映射到服务器上的长期进程。该过程将维护服务器状态,您可以调用它的方法。它仍然是拉而不是推。
- 使用web套接字实现。不确定Mochiweb是否有一个,但其他Erlang HTTP服务器如Misultin和Yaws提供一个。对于基于Web的聊天系统,我相信网络套接字将是一个非常好的选择。
0
对于使用的WebSockets和Misultin你可以看看这个chat demo基于Web的聊天系统的非常简单的例子。它是为了展示一个想法而写的,并不是很优雅,但它确实有效。
4
您使用Web服务器的事实不应该改变太多关于您的模型。你还在建立聊天。您也不想让您的聊天与管理其HTTP连接的进程关系过深。 HTTP连接是短暂的,即使一切进展顺利,并且您正在使用长轮询,也无法保证该连接将与Keep-Alive一起用于下一次长轮询。用户可能还想在多个浏览器窗口,多台计算机上打开相同的聊天。
我还没有任何这些仔细地看了看,但你不是已经建成的网络聊天使用Erlang的第一人:
- http://chrismoos.com/2009/09/28/building-an-erlang-chat-server-with-comet-part-1/
- http://www.erlang-factory.com/upload/presentations/31/EugeneLetuchy-ErlangatFacebook.pdf
- http://yoan.dosimple.ch/blog/2008/05/15/
- https://github.com/yrashk/socket.io-erlang(更多的是这种东西的一般工具,而不是专门聊天)
- https://github.com/rvirding/chat_demo(如上所示)
相关问题
- 1. 在网络上发布UIImage
- 2. 发布数据到网络
- 3. 发布网络服务
- 4. 在本地网络上发布网站
- 5. Erlang发布最佳实践?
- 6. Erlang中的并行HTTP网络爬虫
- 7. 安卓在网络上发布数据
- 8. 发布JSON的网络挂接上Parse.com
- 9. 允许HTTP发布到网络FO
- 10. GoogleTV发布网络应用程序
- 11. SilverStripe发布新闻到社交网络
- 12. 在网络上发布日志
- 13. 在网络上发布Filemaker数据库
- 14. 在网络3.0中的发布请求?
- 15. 如何发布地图到网络?
- 16. 如何发布ASMX网络服务
- 17. 未安装发布所需的网络发布扩展
- 18. 使用VB.Net和网络流发布文本字符串到网络浏览器
- 19. 发布网络应用程序和网站
- 20. 如何在工作网络上发布asp.net网站?
- 21. cURL是否发布到同一网站离开本地网络?
- 22. 发布网站。网络4.0上的主机。 net 3.5
- 23. 发布网站和网络应用程序
- 24. 发布或分发或托管网络项目?
- 25. 如何通过网络浏览器发送发布请求
- 26. Zabbix发送发布数据到网络监控任务
- 27. 分布式网络B +树
- 28. Java网络发现
- 29. Java网络开发
- 30. 没有在VS2012快报“发布” - 网络一个键发布,不能配置
我使用Misultin websockets,它的工作原理非常完美。问题在于,今天许多浏览器都不支持websocket,因此如果您的聊天系统打算成为消费类产品,那么这可能是一个问题。 – Blacksad
好点,用COMET http://en.wikipedia.org/wiki/Comet_(programming)你可以伪造更好的浏览器支持的网络套接字。这里有一个关于Mochiweb的教程:http://www.metabrew.com/article/a-million-user-comet-application-with-mochiweb-part-1 –
@WardB:如果Mochiweb为每个连接产生一个新的进程当产生的进程死亡? – Acute