--引言
Hi, 大家好,我是人称蛙蛤蛤的抹胸长裤的史蒂夫,很高兴我们又见面了。
前端时间,暴雪推出了经典的WOW怀旧服,千人同屏排队的盛景可以说是极其震撼。
网游当中的多人聊天毫无疑问是给所有玩家留下了深刻的印象
“兄弟,奶我!”
“刀在手,跟我走!”。。。
--正文
那么这篇文章,将讲诉如何在S4/HANA中借助ADT的标准开发工具,通过ABAP Push Channel Application来实现一个经典的聊天工具的原型。
笔者会在文末附上所参考的文章,细节之处读者可前去这些文章查询,以及,感谢每一位作者。
首先我们看一下预期的结果。
我们在ABAP report中输入如下消息,点击发送后。
这条问候被推送到了多个web前端client。
那么,我们一起来看一下实现的步骤。
1.ABAP development tool的工程目录如下
2.首先,我们需要新建ABAP push channel。
2.1打开工具菜单填入必输信息
2.2 激活选项中的class,若无,需要自行新建并激活。
2.3 class代码如下,继承实现两个abstract方法。
on_start为连接建立时。
onmessage为消息收到时。具体代码可自行阅读。
无错误后进行激活。
其中所使用的名为zy_message_channel的message channel application将在下一步建立。
3.新建message channel
在program name中维护好可使用此channel的program的名字以及行为,确认无误激活。
4,新建一个用于发送消息的报表。
5. 我们点击测试工具测试服务,确认服务正常。
6.接着,我们直接创建一个前端web应用来消费这个websocket服务。
之所以会有这样的需求,是因为sap ui5的应用多多少少会有应用场景需要用到websocket。
在这里,笔者就不在SAP WEB IDE中创建应用。
笔者使用本地服务器的web页面来演示。
首先,我们借助NODEJS将测试页面挂在服务器上,js如何建立websocket连接可自行查阅。
为了避免跨域的问题,可以使用T-code SAPC_CROSS_ORIGIN维护你的本地的服务器地址,端口,协议。
至此完毕,可以进行测试。
本文只是简单的应用场景演示,基于此模型可以搭建不少工具。
附上参考连接。
ABAP Channels Part 1: WebSocket Communication Using ABAP Push Channels
ABAP Push Channel - access from different domain.