问题标签 [mochiweb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
process - Erlang/Mochiweb 新手问题 abt 客户沟通
每次客户端/浏览器连接到 Mochiweb 服务器时,它都会创建新的 Loop 进程,不是吗?所以,如果我想将消息从一个客户端传输到另一个(典型的聊天系统),我应该使用 Loop 的 self() 来存储所有连接的客户端 PID,不是吗?
如果到目前为止有什么(或一切)有问题,请简要解释一下系统是如何工作的,服务器进程在哪里,客户端进程在哪里?
如何使用其 PID 向客户端的 Loop 进程发送消息?我的意思是在哪里将“接收”放在循环中?
erlang - 关于 HTTP 服务的 Erlang 设计建议
我是 Erlang 的新手,但由于我的并发需求,我想开始使用一个感觉适用于该技术的应用程序。
这张照片突出了我想做的事情。
由于用户在 Django 应用程序中将某些输入作为表单的结果,消息从队列中拉出并路由到先前设置的工作进程。该设置需要一些额外的数据库(预先存在的数据库,因此我不想为此位使用 ETS/DETS)查找,然后与消息路由器对话并创建相关进程。
考虑到我可能想在未来向我的 Django 应用程序询问所有需要设置并首先为他们分配任务的工作人员,我的问题随之而来,这里最好的交流方式是什么。我喜欢 HTTP/json 并且已经阅读了我在 Mochiweb 和 MochiJson 上能找到的一些东西,我认为这可以满足我的需求。我正计划拥有一个 OTP 主管和应用程序,那么拥有一个单独的 mochiweb 进程然后将 erlang 消息传递给路由器是否明智?
由于所有教程都在谈论如何使用脚本创建目录结构,我在使用 mochiweb 时遇到了一些困难,这似乎使 mochiweb 以设计为中心——这不是我想要的,我想要一个轻量级的 mochiweb 进程偶尔工作。
请撕开这个,欢迎大家评论。
干杯
戴夫
erlang - 对氮气监听 IP 地址感到困惑
我在 Windows 7 Home Premium、HP Pavilion Entertainment PC 笔记本电脑上运行 Nitrogen 2.0.X。氮气以 inets 开头,我未能更改或指定网络服务器的 IP 地址。一旦它启动,它会告诉我去我的浏览器并点击http://localhost:8000
下面的 shell 输出:
在几乎所有可用的浏览器中点击链接都表明找不到该页面。当我向模拟器询问端口时,这是它的输出:
我有一个强烈的想法,这inet6_tcp
意味着它使用IPv6
whileinet_tcp
意味着IPv4
,对此不太确定。但总而言之,我无法连接到我的氮气。以下是正在运行的应用程序
http://localhost:8000
鉴于上述观察,有人可以解释为什么我无法通过浏览器访问我的本地氮框架吗?而且,我怎样才能从我的浏览器连接到它?
javascript - 从 1.0.1 更新后 Couchdb 1.1.0 中的 function_clause 错误
从 1.0.1 更新后在 Couchdb 1.1.0 中更新文档时出现错误响应如下所示:
当我使用 1.0.1 时,一切正常。“重大更改”部分中有关于从 1.0.0 更新到 1.1.0 的内容
现在在 PUT 期间验证文档 ID。这意味着某些 PUT 请求将失败,而之前成功。
但我无法弄清楚这对我来说意味着什么。
http - mochiweb 中的非 http
我正在将 mochiweb 用于服务器,该服务器也可能获得客户端向其发送简单字符串的 TCP 连接(没有换行符,该字符串不是 http)。Mochiweb 使用 HTTP 套接字,因此无法检测到这一点(我什至不明白http_error
我可以轻松进入 mochiweb)。我该如何解决这个问题?理想情况下,我希望更改 mochiweb 代码来做,setopt({packet, http_or_raw})
但这种事情不存在。你会建议如何处理这个?我目前的想法是修改 mochiweb 并使用erlang:decode_packet
,有更好的方法吗?
编辑:
更多信息。我们的服务器是一个 websocket 服务。我们希望允许没有 ws 支持浏览器的人使用它,因此当浏览器不能使用时,我们使用 flash 对象来执行 websocket。flash 对象需要获取一个 flash 策略文件。Flash 强制文件位于以下两个位置之一: - 端口 843(Flash 硬编码) - ws 服务的端口 Flash 协议不是基于 HTTP 的。Amazon ELB 不允许对低于 1024 的大多数端口进行端口转发,因此我们通过 mochiweb 的补丁(https://github.com/nivertech/mochiweb/tree/ori_flash_170811)在同一端口实现了闪存服务器。
有什么建议吗?
erlang - 如何在 mochiweb 中设置自动注销时间?
我正在查看 mochiweb 的源代码并查看测试 cookie 过期时间的数字,这些数字看起来与我继承的服务器的行为完全不同。mochiweb 在源代码中有 111 和 86417(一天加 17 秒),但看起来它只是通过 cookie 过期和测试代码中的任何一个来实现。(参见 mochiweb_cookies.erl)
我正在查看的服务器在大约 10-15 分钟内使用户超时,但我看不到任何设置 cookie 值的代码,也看不到任何通过 mochiweb 源的代码路径,甚至可以让我设置它。
有任何想法吗?
erlang - 当程序不再需要时销毁数据结构——Erlang
Tuples
在Erlang中操作的某些函数会在操作后生成新元组的副本。在大多数情况下,程序不再对创建新元组的旧元组副本感兴趣。让我们看一个例子:
在上面的示例中,我从现有的元组创建了一个新元组。如果我随后这样做,我想销毁我自己的旧副本。我有一种感觉,编译器/运行时系统会自动执行此操作,但如果是这样的话,他们就不会为我们提供以下功能:erlang:garbage_collect/0
. 确信他们意识到我们可能需要隐式管理我们的内存,这可能会使程序免于崩溃并找到通过代码的内存密集部分的方式。
我知道在 中erlang shell
,有可能使用f/0, f/1
. 但是,似乎我不能在我的模块/功能中使用它。我也怀疑在该变量名前面加上下划线可能会加速运行时系统的破坏,即我的代码中的某些地方 write: _Tuple1
to destroy Tuple1
。总之,问题是,如果我随后要从现有的元组创建元组,并且在每一步我想立即(我自己)销毁旧副本,我该怎么做? * 注意 *我知道效率指南禁止这样做,但是,如果我别无选择......
各位大神帮忙看看有什么解决办法吗?谢谢
heroku - XForwardedSupport 支持 https 播放!支持 Heroku 失败
我正在 Heroku 上部署一个应用程序并尝试确定传入的请求是否安全(request.secure)。这最初在 heroku 上返回 false,因为 nginx 处理 SSL 工作并通过纯 http 与应用服务器通信。因此,为了让播放读取让我知道这是一个安全请求的标题,我添加了:
XForwardedSupport=127.0.0.1
按照播放留言板中的建议转到 application.conf。但是,所有请求(图像除外)都会失败且没有错误。在它到达播放日志之前,这似乎是一些根本性的事情。有没有人经历过这个?
openssl - CouchDB/MochiWeb SSL 错误
我使用 CouchDB 1.1.1 和自签名证书有一段时间了。
然后,我为我的域购买了 SSL 证书(以 PFX 形式)。
我通过 OpenSSL 将其转换为 .CER 和 .KEY,如下所述:如何转换 PFX 证书文件以在 linux 服务器上与 Apache 一起使用?
但是,CouchDB 给了我这个错误: http: //pastebin.com/PieNwYv7
证书和密钥在http://wiki.apache.org/couchdb/How_to_enable_SSL上推荐的测试中工作正常。
我在 OpenSSL 中尝试了不同的转换选项(der、pem 等),但没有成功:(
我的证书或私钥可能有什么问题?(我显然不能在这里发布私钥,但也许你可以指点我一些工具来诊断问题)
UPD:已尝试
openssl rsa -in server.key -out server_rsa.key
这给出了格式 -----BEGIN RSA PRIVATE KEY(而不是 -----BEGIN PRIVATE KEY)的密钥,也可以与 OpenSSL 一起正常工作(用 测试openssl s_server -key server_rsa.key -cert server.cer -www
),CouchDB 给出不同的错误:
UPD2:使用 Firefox 的密钥生成器(而不是 IIS)获得了另一个证书,此处相同 :(
erlang - mochiweb 可以播放 m3u8 流吗?
我使用 lighttpd 播放 http 直播,效果很好。我想用mochiweb来玩,为了高性能,可行吗?