|
@@ -11,8 +11,8 @@ import (
|
|
|
"github.com/google/uuid"
|
|
"github.com/google/uuid"
|
|
|
|
|
|
|
|
mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
|
|
mL0 "gitp78su.ipnodns.ru/svi/kern/v4/lev0"
|
|
|
- mKa "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
|
|
|
|
|
- mKt "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kspec"
|
|
|
|
|
|
|
+ mKd "gitp78su.ipnodns.ru/svi/kern/v4/lev0/defs"
|
|
|
|
|
+ mKs "gitp78su.ipnodns.ru/svi/kern/v4/lev0/kspec"
|
|
|
mL1 "gitp78su.ipnodns.ru/svi/kern/v4/lev1"
|
|
mL1 "gitp78su.ipnodns.ru/svi/kern/v4/lev1"
|
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev1/kbus_msg/msg_pub"
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev1/kbus_msg/msg_pub"
|
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev1/kbus_msg/msg_serve"
|
|
"gitp78su.ipnodns.ru/svi/kern/v4/lev1/kbus_msg/msg_serve"
|
|
@@ -25,16 +25,16 @@ import (
|
|
|
|
|
|
|
|
// ClientBusHttp -- клиент HTTP-шины.
|
|
// ClientBusHttp -- клиент HTTP-шины.
|
|
|
type ClientBusHttp struct {
|
|
type ClientBusHttp struct {
|
|
|
- bus mKt.IKernelBus
|
|
|
|
|
- lCtx mKt.ILocalCtx
|
|
|
|
|
- log mKt.ILogBuf
|
|
|
|
|
- isWork mKt.ISafeBool
|
|
|
|
|
|
|
+ bus mKs.IKernelBus
|
|
|
|
|
+ lCtx mKs.ILocalCtx
|
|
|
|
|
+ log mKs.ILogBuf
|
|
|
|
|
+ isWork mKs.ISafeBool
|
|
|
urlRemote string // URL дистанционной шины
|
|
urlRemote string // URL дистанционной шины
|
|
|
urlLocal string // URL локальной шины для веб-хуков
|
|
urlLocal string // URL локальной шины для веб-хуков
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// NewClientBusHttp - -возвращает новый клиент HTTP-шины.
|
|
// NewClientBusHttp - -возвращает новый клиент HTTP-шины.
|
|
|
-func NewClientBusHttp(urlRemote string) mKt.IBusClient {
|
|
|
|
|
|
|
+func NewClientBusHttp(urlRemote string) mKs.IBusClient {
|
|
|
log := mL1.NewLogBuf(mL1.OptIsTerm(true), mL1.OptPrefix("ClientBusHttp"))
|
|
log := mL1.NewLogBuf(mL1.OptIsTerm(true), mL1.OptPrefix("ClientBusHttp"))
|
|
|
log.Debug("NewClientBusHttp()")
|
|
log.Debug("NewClientBusHttp()")
|
|
|
mL0.Hassert(urlRemote != "", "NewClientBusHttp(): urlRemote is empty")
|
|
mL0.Hassert(urlRemote != "", "NewClientBusHttp(): urlRemote is empty")
|
|
@@ -55,7 +55,7 @@ func NewClientBusHttp(urlRemote string) mKt.IBusClient {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Unsubscribe -- отписывается от топика в дистанционной шине.
|
|
// Unsubscribe -- отписывается от топика в дистанционной шине.
|
|
|
-func (sf *ClientBusHttp) Unsubscribe(handler mKt.IBusHandlerSubscribe) {
|
|
|
|
|
|
|
+func (sf *ClientBusHttp) Unsubscribe(handler mKs.IBusHandlerSubscribe) {
|
|
|
_uuid, err := uuid.NewV6()
|
|
_uuid, err := uuid.NewV6()
|
|
|
mL1.Hassert()(err == nil, "ClientBusHttp.Unsubscribe(): in generate UUID v6, err=\n\t%v", err)
|
|
mL1.Hassert()(err == nil, "ClientBusHttp.Unsubscribe(): in generate UUID v6, err=\n\t%v", err)
|
|
|
|
|
|
|
@@ -90,7 +90,7 @@ func (sf *ClientBusHttp) Unsubscribe(handler mKt.IBusHandlerSubscribe) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Subscribe -- подписывается на топик в дистанционной шине.
|
|
// Subscribe -- подписывается на топик в дистанционной шине.
|
|
|
-func (sf *ClientBusHttp) Subscribe(handler mKt.IBusHandlerSubscribe) mKt.IResult[bool] {
|
|
|
|
|
|
|
+func (sf *ClientBusHttp) Subscribe(handler mKs.IBusHandlerSubscribe) mKs.IResult[bool] {
|
|
|
_uuid, err := uuid.NewV6()
|
|
_uuid, err := uuid.NewV6()
|
|
|
mL0.Hassert(err == nil, "ClientBusHttp.Subscribe(): in generate UUID v6, err=\n\t%v", err)
|
|
mL0.Hassert(err == nil, "ClientBusHttp.Subscribe(): in generate UUID v6, err=\n\t%v", err)
|
|
|
req := &msg_sub.SubscribeReq{
|
|
req := &msg_sub.SubscribeReq{
|
|
@@ -129,7 +129,7 @@ func (sf *ClientBusHttp) Subscribe(handler mKt.IBusHandlerSubscribe) mKt.IResult
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// SendRequest -- отправляет в дистанционную шину запрос.
|
|
// SendRequest -- отправляет в дистанционную шину запрос.
|
|
|
-func (sf *ClientBusHttp) SendRequest(topic *mKa.Topic, binReq []byte) mL0.IResult[[]byte] {
|
|
|
|
|
|
|
+func (sf *ClientBusHttp) SendRequest(topic *mKd.Topic, binReq []byte) mL0.IResult[[]byte] {
|
|
|
_uuid, err := uuid.NewV6()
|
|
_uuid, err := uuid.NewV6()
|
|
|
mL1.Hassert()(err == nil, "ClientBusHttp.SendRequest(): in generate UUID v6, err=\n\t%v", err)
|
|
mL1.Hassert()(err == nil, "ClientBusHttp.SendRequest(): in generate UUID v6, err=\n\t%v", err)
|
|
|
req := &msg_serve.ServeReq{
|
|
req := &msg_serve.ServeReq{
|
|
@@ -167,7 +167,7 @@ func (sf *ClientBusHttp) SendRequest(topic *mKa.Topic, binReq []byte) mL0.IResul
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// RegisterServe -- регистрирует в локальной шине обработчик.
|
|
// RegisterServe -- регистрирует в локальной шине обработчик.
|
|
|
-func (sf *ClientBusHttp) RegisterServe(handler mKt.IBusHandlerServe) mL0.IResult[bool] {
|
|
|
|
|
|
|
+func (sf *ClientBusHttp) RegisterServe(handler mKs.IBusHandlerServe) mL0.IResult[bool] {
|
|
|
if handler == nil {
|
|
if handler == nil {
|
|
|
return mL0.NewErr[bool](fmt.Errorf("ClientBusHttp.RegisterServe(): handler==nil"))
|
|
return mL0.NewErr[bool](fmt.Errorf("ClientBusHttp.RegisterServe(): handler==nil"))
|
|
|
}
|
|
}
|
|
@@ -180,7 +180,7 @@ func (sf *ClientBusHttp) RegisterServe(handler mKt.IBusHandlerServe) mL0.IResult
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Publish -- публикует сообщение в дистанционной шину.
|
|
// Publish -- публикует сообщение в дистанционной шину.
|
|
|
-func (sf *ClientBusHttp) Publish(topic *mKa.Topic, binMsg []byte) mL0.IResult[bool] {
|
|
|
|
|
|
|
+func (sf *ClientBusHttp) Publish(topic *mKd.Topic, binMsg []byte) mL0.IResult[bool] {
|
|
|
_uuid, err := uuid.NewV6()
|
|
_uuid, err := uuid.NewV6()
|
|
|
mL1.Hassert()(err == nil, "ClientBusHttp.Publish(): in generate UUID v6, err=\n\t%v", err)
|
|
mL1.Hassert()(err == nil, "ClientBusHttp.Publish(): in generate UUID v6, err=\n\t%v", err)
|
|
|
req := &msg_pub.PublishReq{
|
|
req := &msg_pub.PublishReq{
|
|
@@ -218,7 +218,7 @@ func (sf *ClientBusHttp) Publish(topic *mKa.Topic, binMsg []byte) mL0.IResult[bo
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Единый обработчик запросов.
|
|
// Единый обработчик запросов.
|
|
|
-func (sf *ClientBusHttp) makePost(hReq *http.Request) mKt.IResult[[]byte] {
|
|
|
|
|
|
|
+func (sf *ClientBusHttp) makePost(hReq *http.Request) mKs.IResult[[]byte] {
|
|
|
hReq.Header.Add("Content-Type", "application/json")
|
|
hReq.Header.Add("Content-Type", "application/json")
|
|
|
_resp, err := http.DefaultClient.Do(hReq)
|
|
_resp, err := http.DefaultClient.Do(hReq)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -244,7 +244,7 @@ func (sf *ClientBusHttp) makePost(hReq *http.Request) mKt.IResult[[]byte] {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Log -- возвращает локальный лог клиента.
|
|
// Log -- возвращает локальный лог клиента.
|
|
|
-func (sf *ClientBusHttp) Log() mKt.ILogBuf {
|
|
|
|
|
|
|
+func (sf *ClientBusHttp) Log() mKs.ILogBuf {
|
|
|
return sf.log
|
|
return sf.log
|
|
|
}
|
|
}
|
|
|
|
|
|