问题标签 [misultin]

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.

0 投票
3 回答
1166 浏览

erlang - 与 Misultin Erlang HTTP 库上的 TCP/IP 套接字相关的 WebSockets

我必须说我对Misultin对 Web Sockets 的支持印象深刻(这里有一些例子)。我的 JavaScript 正在以“可忽略的”延迟或滞后发出请求并通过网络获取响应,太好了!

看看 WebSockets 的数据处理程序循环的样子,它类似于普通的 TCP/IP 套接字,至少是 Erlang 中的基本方式

这段代码在由 Misultin 生成的进程中执行,这是您在启动服务器时为其提供的功能,如下所示:

有关此的更多代码,请查看示例页面。
我有几个问题。

问题 1:我可以像我们通常在 Erlang 中使用 TCP/IP 套接字一样更改 Web 套接字的控制进程吗?(我们通常使用gen_tcp:controlling_process(Socket,NewProcessId):)
问题 2: Misultin是唯一支持 WebSockets 的 Erlang/OTP HTTP 库吗?其余的在哪里?
编辑: 现在,我需要能够从 Misultin 传输 WebSocket 控件的原因
想一想gen_server将控制 WebSocket 池的一个,比如它是一个游戏服务器。在当前的 Misultin 示例中,对于每个 WebSocket 连接,都有一个控制进程,换句话说,对于每个 WebSocket,都会有一个衍生进程。现在,我知道 Erlang 是 Processes 的英雄,但是,我不希望这样,我希望这些初始进程在处理到我gen_server的 WebSocket 控制权限后立即终止。
我希望这gen_server可以在这些 WebSocket 之间切换数据。在当前的实现中,我需要Pid像这样跟踪 Misultin 的 handle_websocket 进程:

上面,这个想法非常有效,我将所有控制过程保存到 Mnesia Ram 表中,如果应用程序想要向该特定用户发送消息,则根据给定标准查找它。但是,根据我想要实现的目标,我意识到在现实世界中,进程可能太多以至于我的服务器可能会崩溃。我希望至少有一个gen_server来控制数千个 Web Socket,而不是为每个 Web Socket 拥有一个进程,这样,我可以节省一些内存。

建议: Misultin 的作者可以在他的下一个版本中为我们创建 Web Socket Groups 实现,从而我们可以让一组 WebSockets 由同一进程控制。这将类似于Nitrogen's Comet Groups其中彗星连接在同一控制下组合在一起。如果这不可能,我们将需要自己进行控制,提供一个 API,我们可以在其中接管这些 Web 套接字的控制。

工程师们对此有何看法?
您对此有何建议和/或评论?

米苏尔廷的作者可以对此说些什么。谢谢大家

0 投票
1 回答
170 浏览

erlang - 米苏尔汀。如何从 misultin 中的请求中获取子域值?

如果请求是http://subdomain.example.com/blah-blah我怎样才能获得子域值?

0 投票
1 回答
195 浏览

erlang - Erlang / Misultin / erlsom 错误 / 进程死亡

二郎代码:

在我编译代码并启动服务器后,我打开了 localhost:8080/,shell 给了我以下错误:

ChicagoBoss 的相同 lib 'erlsom' 成功运行......

之后我尝试使用 xmerl,但结果相似。

0 投票
2 回答
60 浏览

javascript - erlang misultin 上的 Websocket - 始终将请求传递给循环而不是 ws_loop

在 misultin 中设置 websocket 非常简单,如下所示。

但是,在我的 javascript 代码ws = new WebSocket("ws://url")中总是传递给handle_http()而不是handle_websocket().

有谁知道我错过了什么?