我有一个常见的方法,即onMessage,它接受来自不同客户端(Websocket客户端)的输入。
客户端以特定数据格式发送不同的消息,即
{
"event" : "init",
"data" : {}
}
所有这些不同的消息都由onMessage函数解析。
现在我有一个基于例如消息事件的用例。如果事件是init
发布的内容,如果事件是heartbeat
发布的内容等。
什么是最通用的方式,以便稍后可以添加具有不同实现的事件。
到目前为止,我有一个想法,我必须使用接口。我正在做的是我有一个名为EventInterface
的接口,其中publish
,getName
方法。
然后我创建了一个名为Init
的类,它实现了EventInterface
并定义了publish
& getName
方法。
现在我如何将onMessage
函数与这些不同的Event类连接起来。这是我认为的不同事件听众的类型。
现在我想到的一个解决方案是创建一个名为Events
的类,它将所有事件Object,即Init类对象,HeartBeat类对象存储在一个数组中。
因此,当我从Events创建对象并从onMessage方法传递message
并调用magic方法时,它循环遍历事件对象数组并使用相应事件类的getName
方法匹配名称并调用发布方法
如果这是处理此用例的最佳方式,请使用Idk。如果这样可以,那么无论如何我可以避免手动将对象添加到Events
类的事件对象方法中?或者没关系?