怎样用Node.Js开发聊天机器人

JavaScript034

怎样用Node.Js开发聊天机器人,第1张

开始一个新的 Node.js 项目并把 RoLE 增加为依赖。RoLE 是 Robot on LeanEngien 的缩写,这是从我们自己的聊天室机器人抽象出来的一个库。

不过因为已经有一个叫 role 的 NPM 包,所以包名就只能叫 role-model 了,也是个有趣的名字。

如今运维人员都在强调自动化,降低运维成本。尽管现在搭建一套运维自动化体系架构并不难,然后有些工作还是必须需要运维手动工作,比如上线动作(上线的过程自动化,但是操作点由谁来操作,比如jenkins上谁去点击构建),或者偶尔有开发或测试会在直接找你手动更改数据操作,这些暂时都必须人为手动操作。次数多了,难免会想这些怎么去实现自动化,无需人为干预!知道有次在钉钉群有人添加生活机器人,互动回复天气情况。当时我在想后面的逻辑肯定是,当机器人收到指定后,自动调第三方接口,将数据返回。如果这个接口是我自己编写,实现自己的功能,不就可以将一些手动任务直接让机器人去执行了!换句话说,下次开发有条sql要执行,别@我,直接@机器人,然后机器人直接将sql执行,然后返回给对应的开发就完美了!还别说,真有人在做这样的事情,那就是Hubot。一些相关细节早就有人发过博客,我就不啰嗦了,请自动百度!以下是我尝试使用机器人,去模拟实现我目前工作中的一些简单任务。

一,安装nodejs,过程略

二,安装redis

hubot一些底层数据会默认存储在本机localhost:6379中,测试功能中,一切随简

三,安装hubot,过程比较简单

正常启动如下图

如果能看到上图说明hubot部署成功

当前文件下的文件如下

node_modules 目录是存放npm install packagename 第三方包的存放目录

external-scripts.json 将安装玩的第三方包要添加到此配置文件

scripts 文件夹用户存放用户自定义的,机器人能“读懂”的指令,具体使用情况请查看github地址: https://github.com/hubotio/hubot/blob/master/docs/scripting.md

启动:

四,与聊天机器人结合

既然hubot作为聊天机器人,那么肯定要结合聊天工具,才能真正的实际意义。可惜的是国内办公聊天工具如钉钉,微信(如果算的话)官方暂未支持hubot机器人。所以只能用替代工具测试hubot功能, https://bearychat.com/ ,倍洽相当于国内的slack,官方支持hubot机器人,免费。

在页面直接添加机器人

在服务端添加环境变量

安装倍洽adapter

重启hubot服务

测试如下

机器人能回复说明一切正常

模块测试

npm install hubot-script-shellcmd

在./node_modules/hubot-script-shellcmd/bash/handlers 目录中添加自己定义好的可执行文件

1.查看本地第一个脚本

非常简单的一个查看磁盘使用情况脚本

这个模块好好利用还是非常强大的,比如可用配合工具一起使用

如在服务端安装ansible,mysql;甚至kubectl客户端。可以简化很多操作

2.测试ansible脚本

测试结果如下

个人认为好好利用这个模块,能做的事情还是很多的!

hubot-jenkins模块

添加jenkins相关环境变量添加

重启hubot

测试结果如下

查看jenkins任务

发起http请求

运维可以将一些负责的运维工作封装,暴露rest接口,通过机器人发送执行,发起请求;

测试如下

1.编写一个简单的接口

测试接口

在scripts目录下添加脚本

http.coffee

重启hubot服务

机器人测试如下

完美!一切都按照自己臆想的进行!

以上就是这次对hubot一些简单的探索,和尝试使用,当然还有很多强大的地方我没有写到,网友可以去github搜索hubot查看更深入的使用!这个实际是就是运维界有人推行的chatops理念,让机器人代理运维!但是这个理念推广的并不广泛,好多行业内的朋友都不知道这个东西!个人感觉这个还是很有可为,可以尝试在所在公司推广使用,但是必须要解决两个问题:权限问题,办公聊天工具支持!

码字,好累...

JMS是指Java消息服务,Java Message Service的简称。

Java 消息服务(Java Message Service,JMS)应用程序接口是一个Java 平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java 消息服务是一个与具体平台无关的 API,绝大多数 MOM 提供商都对 JMS 提供支持。

Java 消息服务的规范包括两种消息模式,点对点和发布者/订阅者。许多提供商支持这一通用框架因此,程序员可以在他们的分布式软件中实现面向消息的操作,这些操作将具有不同面向消息中间件产品的可移植性。

扩展资料

JMS的优势:

1、异步

JMS天生就是异步的,客户端获取消息的时候,不需要主动发送请求,消息会自动发送给可用的客户端。

2、可靠

JMS保证消息只会递送一次。大家都遇到过重复创建消息问题,而JMS能帮你避免该问题。

在JMS中,消息的接收可以使用以下两种方式:

同步:使用同步方式接收消息的话,消息订阅者调用receive()方法。在receive()中,消息未到达或在到达指定时间之前,方法会阻塞,直到消息可用。

异步:使用异步方式接收消息的话,消息订阅者需注册一个消息监听者,类似于事件监听器,只要消息到达,JMS服务提供者会通过调用监听器的onMessage()递送消息。

参考资料来源:百度百科-Java消息服务