nodejs websocket_ABAP玩多人聊天?来用ABAP实现的websocket协同工具

--引言

Hi, 大家好,我是人称蛙蛤蛤的抹胸长裤的史蒂夫,很高兴我们又见面了。

前端时间,暴雪推出了经典的WOW怀旧服,千人同屏排队的盛景可以说是极其震撼。

网游当中的多人聊天毫无疑问是给所有玩家留下了深刻的印象

“兄弟,奶我!”

“刀在手,跟我走!”。。。

--正文

那么这篇文章,将讲诉如何在S4/HANA中借助ADT的标准开发工具,通过ABAP Push Channel Application来实现一个经典的聊天工具的原型。

笔者会在文末附上所参考的文章,细节之处读者可前去这些文章查询,以及,感谢每一位作者。

首先我们看一下预期的结果。

我们在ABAP report中输入如下消息,点击发送后。

v2-c679f9003e4057ce55a781c21dc0eff3_b.jpg

这条问候被推送到了多个web前端client。

v2-225887737f1828c6adbbfb793bbabc92_b.jpg

v2-269a89a1f189775b4d99919c1d085cf1_b.jpg

那么,我们一起来看一下实现的步骤。

1.ABAP development tool的工程目录如下

v2-60de76d47901e9cfe3c41c3e2b373c53_b.jpg

2.首先,我们需要新建ABAP push channel。

2.1打开工具菜单填入必输信息

v2-897d6faf5047fe51d665860a63a65f91_b.jpg

2.2 激活选项中的class,若无,需要自行新建并激活。

v2-ad774e96ca16f899e35990490fc840b1_b.jpg

2.3 class代码如下,继承实现两个abstract方法。

on_start为连接建立时。

onmessage为消息收到时。具体代码可自行阅读。

无错误后进行激活。

其中所使用的名为zy_message_channel的message channel application将在下一步建立。

v2-2e833b668f58ff501670b4bb1631fd70_b.jpg

3.新建message channel

在program name中维护好可使用此channel的program的名字以及行为,确认无误激活。

v2-06b281beb75cfa03d34c99e8ed2e7759_b.jpg

4,新建一个用于发送消息的报表。

v2-6001c992c16ec75c8b44c4a51008eeac_b.jpg

5. 我们点击测试工具测试服务,确认服务正常。

v2-a1ad0e77384015284c47d945e1f88911_b.jpg

6.接着,我们直接创建一个前端web应用来消费这个websocket服务。

之所以会有这样的需求,是因为sap ui5的应用多多少少会有应用场景需要用到websocket。

在这里,笔者就不在SAP WEB IDE中创建应用。

笔者使用本地服务器的web页面来演示。

首先,我们借助NODEJS将测试页面挂在服务器上,js如何建立websocket连接可自行查阅。

v2-900d12f94e7bf1e3a6a5f80948133bbc_b.png

v2-9e14541f14fbdc6943c3a9a57431b239_b.jpg

为了避免跨域的问题,可以使用T-code SAPC_CROSS_ORIGIN维护你的本地的服务器地址,端口,协议。

至此完毕,可以进行测试。

本文只是简单的应用场景演示,基于此模型可以搭建不少工具。

附上参考连接。

ABAP Channels Part 1: WebSocket Communication Using ABAP Push Channels

ABAP Push Channel - access from different domain.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值