博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
cowboy中分布式节点通信
阅读量:6241 次
发布时间:2019-06-22

本文共 651 字,大约阅读时间需要 2 分钟。

项目开发中,web前端节点需要与远端的聊天服节点通信。聊天服使用了otp,但我对otp下的分布式通信不太清楚,造成了一些问题。

1)首先是cowboy节点的命名。具体参数是配置在工程目录rel下的vm.args文件中:

    -name xxx@127.0.0.1

    -setcookie xxxxx

    -heart

    或者在cowboy启动的控制台中输入node()查看节点命名。

 

2)知道远端结点命名后,首先要调用net_kernel:connect()连接。不过可能是因为是在单台服务器上的原因,我没有调用此接口,消息也可以成功路由到远端节点。调用如下:

    Ret = rpc:call('xxx@127.0.0.1', chatserver_app, chatver, []),

    ...

    测试时远端节点报出不允许节点连接的错误信息。查看两结点各自目录下的vm.args文件,cookie设置不同。将cookie修改同名并重启结点后,测试成功。

 

3)远端使用otp的进程如何接收rpc发来的消息呢?可在application即chatserver_app中增加rpc调用对应的接口(这里为chatver),再将消息通过otp转发给目标:

    chatver() -> gen_server:call(chatarea, version).

    调用后的返回值不需要做任何处理,便会正确返回到调用方-前端结点。

转载于:https://www.cnblogs.com/Jackie-Snow/p/9244177.html

你可能感兴趣的文章
python继承关系及DVD案例
查看>>
木其工作室代写程序 [原]使用Filter过滤ip禁止访问系统
查看>>
2.6 The Object Model -- Bindings
查看>>
2.4 The Object Model -- Computed Properties and Aggregate Data with @each(计算的属性和使用@each聚合数据)...
查看>>
二叉树问题(区间DP好题)
查看>>
PHP基础
查看>>
PHP奇淫技巧
查看>>
Centos中配置环境变量
查看>>
mysql中判断记录是否存在方法比较【转】
查看>>
HBase 列族的概念
查看>>
hdu2036
查看>>
基于模板匹配的马赛克检验
查看>>
Database4.exe用来导入excel
查看>>
Unable to preventDefault inside passive event listener
查看>>
java中string和int互相转化 (转)
查看>>
[LUOGU] P1220 关路灯
查看>>
【转】在控制台、WinForm项目中的嵌入mdf文件的烦恼
查看>>
【转】C51中断函数的写法
查看>>
django无法加载admin的静态内容的问题(Centos7+Nginx+uwsgi环境下)
查看>>
windows 2008 启用.NET Framework 3.5
查看>>