0

我有一个带有二进制模式匹配的牛仔 ws 处理程序,如下所示:

websocket_handle({text, <<"Reg: ",Message/binary>>}, Req, State)

我需要用 js 代码调用这个处理程序,所以我使用 Bert.js 将 js 字符串变量编码为二进制 erlang 术语,如下所示:

 websocket.send(Bert.encode(Bert.binary("<<\"Reg: \" , \""+input2 + "\">>")));

但是我不能用这个编码的参数调用我的处理程序!

我的编码参数错了吗?还是有另一种方法可以用 js 制作 erlang 二进制项?

4

2 回答 2

0

我没有使用 Bert,但似乎 Bert.encode 将必须转换为二进制的字符串作为参数。

Erlang 表示法用于<<...>>将术语标识为二进制,并且内部"..."向编译器或用户说二进制的元素是 ascii 字符。它们不是二进制文件本身的一部分,不应传递给 Bert.binary 函数。

我认为这Bert.binary("Reg: " + input2)是正确的。

于 2017-01-24T11:56:01.693 回答
0

我使用了一个粗鲁的 js 字符串,它现在可以工作了。

websocket.send("Reg: " +input2 );
于 2017-01-24T13:28:30.697 回答