删除centrifugog的grpc客户端相关代码

调整仿真订阅topic
修改仿真id生成
This commit is contained in:
walker 2023-11-17 17:01:12 +08:00
parent 6f754efaca
commit 993790038f
11 changed files with 30 additions and 13825 deletions

View File

@ -12,6 +12,10 @@ import (
"joylink.club/bj-rtsts-server/dto"
)
const (
SystemName = "rtsts"
)
type AppConfig struct {
Env string
Server server

File diff suppressed because it is too large Load Diff

View File

@ -1,835 +0,0 @@
syntax = "proto3";
package centrifugal.centrifugo.api;
option go_package = "./;apiproto";
service CentrifugoApi {
rpc Batch(BatchRequest) returns (BatchResponse) {}
rpc Publish (PublishRequest) returns (PublishResponse) {}
rpc Broadcast (BroadcastRequest) returns (BroadcastResponse) {}
rpc Subscribe (SubscribeRequest) returns (SubscribeResponse) {}
rpc Unsubscribe (UnsubscribeRequest) returns (UnsubscribeResponse) {}
rpc Disconnect (DisconnectRequest) returns (DisconnectResponse) {}
rpc Presence (PresenceRequest) returns (PresenceResponse) {}
rpc PresenceStats (PresenceStatsRequest) returns (PresenceStatsResponse) {}
rpc History (HistoryRequest) returns (HistoryResponse) {}
rpc HistoryRemove (HistoryRemoveRequest) returns (HistoryRemoveResponse) {}
rpc Info (InfoRequest) returns (InfoResponse) {}
rpc RPC (RPCRequest) returns (RPCResponse) {}
rpc Refresh (RefreshRequest) returns (RefreshResponse) {}
rpc Channels (ChannelsRequest) returns (ChannelsResponse) {}
rpc Connections (ConnectionsRequest) returns (ConnectionsResponse) {}
rpc UpdateUserStatus (UpdateUserStatusRequest) returns (UpdateUserStatusResponse) {}
rpc GetUserStatus (GetUserStatusRequest) returns (GetUserStatusResponse) {}
rpc DeleteUserStatus (DeleteUserStatusRequest) returns (DeleteUserStatusResponse) {}
rpc BlockUser (BlockUserRequest) returns (BlockUserResponse) {}
rpc UnblockUser (UnblockUserRequest) returns (UnblockUserResponse) {}
rpc RevokeToken (RevokeTokenRequest) returns (RevokeTokenResponse) {}
rpc InvalidateUserTokens (InvalidateUserTokensRequest) returns (InvalidateUserTokensResponse) {}
rpc DeviceRegister (DeviceRegisterRequest) returns (DeviceRegisterResponse) {}
rpc DeviceUpdate (DeviceUpdateRequest) returns (DeviceUpdateResponse) {}
rpc DeviceRemove (DeviceRemoveRequest) returns (DeviceRemoveResponse) {}
rpc DeviceList (DeviceListRequest) returns (DeviceListResponse) {}
rpc DeviceTopicList (DeviceTopicListRequest) returns (DeviceTopicListResponse) {}
rpc DeviceTopicUpdate (DeviceTopicUpdateRequest) returns (DeviceTopicUpdateResponse) {}
rpc UserTopicList (UserTopicListRequest) returns (UserTopicListResponse) {}
rpc UserTopicUpdate (UserTopicUpdateRequest) returns (UserTopicUpdateResponse) {}
rpc SendPushNotification (SendPushNotificationRequest) returns (SendPushNotificationResponse) {}
rpc UpdatePushStatus (UpdatePushStatusRequest) returns (UpdatePushStatusResponse) {}
}
message Command {
enum MethodType {
PUBLISH = 0;
BROADCAST = 1;
UNSUBSCRIBE = 2;
DISCONNECT = 3;
PRESENCE = 4;
PRESENCE_STATS = 5;
HISTORY = 6;
HISTORY_REMOVE = 7;
CHANNELS = 8;
INFO = 9;
RPC = 10;
SUBSCRIBE = 11;
REFRESH = 12;
CONNECTIONS = 14;
UPDATE_USER_STATUS = 15;
GET_USER_STATUS = 16;
DELETE_USER_STATUS = 17;
BLOCK_USER = 18;
UNBLOCK_USER = 19;
REVOKE_TOKEN = 20;
INVALIDATE_USER_TOKENS = 21;
DEVICE_REGISTER = 22;
DEVICE_UPDATE = 23;
DEVICE_REMOVE = 24;
DEVICE_LIST = 25;
DEVICE_TOPIC_LIST = 26;
DEVICE_TOPIC_UPDATE = 27;
USER_TOPIC_LIST = 28;
USER_TOPIC_UPDATE = 29;
SEND_PUSH_NOTIFICATION = 30;
UPDATE_PUSH_STATUS = 31;
}
uint32 id = 1;
MethodType method = 2;
bytes params = 3;
PublishRequest publish = 4;
BroadcastRequest broadcast = 5;
SubscribeRequest subscribe = 6;
UnsubscribeRequest unsubscribe = 7;
DisconnectRequest disconnect = 8;
PresenceRequest presence = 9;
PresenceStatsRequest presence_stats = 10;
HistoryRequest history = 11;
HistoryRemoveRequest history_remove = 12;
InfoRequest info = 13;
RPCRequest rpc = 14;
RefreshRequest refresh = 15;
ChannelsRequest channels = 16;
ConnectionsRequest connections = 17;
UpdateUserStatusRequest update_user_status = 18;
GetUserStatusRequest get_user_status = 19;
DeleteUserStatusRequest delete_user_status = 20;
BlockUserRequest block_user = 21;
UnblockUserRequest unblock_user = 22;
RevokeTokenRequest revoke_token = 23;
InvalidateUserTokensRequest invalidate_user_tokens = 24;
DeviceRegisterRequest device_register = 25;
DeviceUpdateRequest device_update = 26;
DeviceRemoveRequest device_remove = 27;
DeviceListRequest device_list = 28;
DeviceTopicListRequest device_topic_list = 29;
DeviceTopicUpdateRequest device_topic_update = 30;
UserTopicListRequest user_topic_list = 31;
UserTopicUpdateRequest user_topic_update = 32;
SendPushNotificationRequest send_push_notification = 33;
UpdatePushStatusRequest update_push_status = 34;
}
message Error {
uint32 code = 1;
string message = 2;
}
message Reply {
uint32 id = 1;
Error error = 2;
bytes result = 3;
PublishResult publish = 4;
BroadcastResult broadcast = 5;
SubscribeResult subscribe = 6;
UnsubscribeResult unsubscribe = 7;
DisconnectResult disconnect = 8;
PresenceResult presence = 9;
PresenceStatsResult presence_stats = 10;
HistoryResult history = 11;
HistoryRemoveResult history_remove = 12;
InfoResult info = 13;
RPCResult rpc = 14;
RefreshResult refresh = 15;
ChannelsResult channels = 16;
ConnectionsResult connections = 17;
UpdateUserStatusResult update_user_status = 18;
GetUserStatusResult get_user_status = 19;
DeleteUserStatusResult delete_user_status = 20;
BlockUserResult block_user = 21;
UnblockUserResult unblock_user = 22;
RevokeTokenResult revoke_token = 23;
InvalidateUserTokensResult invalidate_user_tokens = 24;
DeviceRegisterResult device_register = 25;
DeviceUpdateResult device_update = 26;
DeviceRemoveResult device_remove = 27;
DeviceListResult device_list = 28;
DeviceTopicListResult device_topic_list = 29;
DeviceTopicUpdateResult device_topic_update = 30;
UserTopicListResult user_topic_list = 31;
UserTopicUpdateResult user_topic_update = 32;
SendPushNotificationResult send_push_notification = 33;
UpdatePushStatusResult update_push_status = 34;
}
message BoolValue {
bool value = 1;
}
message Int32Value {
int32 value = 1;
}
message SubscribeOptionOverride {
BoolValue presence = 1;
BoolValue join_leave = 2;
BoolValue force_recovery = 3;
BoolValue force_positioning = 4;
BoolValue force_push_join_leave = 5;
}
message BatchRequest {
repeated Command commands = 1;
}
message BatchResponse {
repeated Reply replies = 1;
}
message PublishRequest {
string channel = 1;
bytes data = 2;
string b64data = 3;
bool skip_history = 4;
map<string, string> tags = 5;
}
message PublishResponse {
Error error = 1;
PublishResult result = 2;
}
message PublishResult {
uint64 offset = 1;
string epoch = 2;
}
message BroadcastRequest {
repeated string channels = 1;
bytes data = 2;
string b64data = 3;
bool skip_history = 4;
map<string, string> tags = 5;
}
message BroadcastResponse {
Error error = 1;
BroadcastResult result = 2;
}
message BroadcastResult {
repeated PublishResponse responses = 1;
}
message SubscribeRequest {
string channel = 1;
string user = 2;
int64 expire_at = 3;
bytes info = 4;
string b64info = 5;
string client = 6;
bytes data = 7;
string b64data = 8;
StreamPosition recover_since = 9;
SubscribeOptionOverride override = 10;
string session = 11;
}
message SubscribeResponse {
Error error = 1;
SubscribeResult result = 2;
}
message SubscribeResult {}
message UnsubscribeRequest {
string channel = 1;
string user = 2;
string client = 3;
string session = 4;
}
message UnsubscribeResponse {
Error error = 1;
UnsubscribeResult result = 2;
}
message UnsubscribeResult {}
message Disconnect {
reserved 3;
uint32 code = 1;
string reason = 2;
}
message DisconnectRequest {
string user = 1;
Disconnect disconnect = 2;
string client = 3;
repeated string whitelist = 4;
string session = 5;
}
message DisconnectResponse {
Error error = 1;
DisconnectResult result = 2;
}
message DisconnectResult {}
message PresenceRequest {
string channel = 1;
}
message PresenceResponse {
Error error = 1;
PresenceResult result = 2;
}
message ClientInfo {
string user = 1;
string client = 2;
bytes conn_info = 3;
bytes chan_info = 4;
}
message PresenceResult {
map<string, ClientInfo> presence = 1;
}
message PresenceStatsRequest {
string channel = 1;
}
message PresenceStatsResponse {
Error error = 1;
PresenceStatsResult result = 2;
}
message PresenceStatsResult {
uint32 num_clients = 1;
uint32 num_users = 2;
}
message StreamPosition {
uint64 offset = 1;
string epoch = 2;
}
message HistoryRequest {
string channel = 1;
int32 limit = 2;
StreamPosition since = 3;
bool reverse = 4;
}
message HistoryResponse {
Error error = 1;
HistoryResult result = 2;
}
message Publication {
// Removed: string uid = 1;
bytes data = 2;
ClientInfo info = 3;
uint64 offset = 4;
map<string, string> tags = 5;
}
message HistoryResult {
repeated Publication publications = 1;
string epoch = 2;
uint64 offset = 3;
}
message HistoryRemoveRequest {
string channel = 1;
}
message HistoryRemoveResponse {
Error error = 1;
HistoryRemoveResult result = 2;
}
message HistoryRemoveResult {}
message InfoRequest {}
message InfoResponse {
Error error = 1;
InfoResult result = 2;
}
message InfoResult {
repeated NodeResult nodes = 1;
}
message RPCRequest {
string method = 1;
bytes params = 2;
}
message RPCResponse {
Error error = 1;
RPCResult result = 2;
}
message RPCResult {
bytes data = 1;
}
message RefreshRequest {
string user = 1;
string client = 2;
bool expired = 3;
int64 expire_at = 4;
bytes info = 5;
string session = 6;
}
message RefreshResponse {
Error error = 1;
RefreshResult result = 2;
}
message RefreshResult {}
message NodeResult {
string uid = 1;
string name = 2;
string version = 3;
uint32 num_clients = 4;
uint32 num_users = 5;
uint32 num_channels = 6;
uint32 uptime = 7;
Metrics metrics = 8;
Process process = 9;
uint32 num_subs = 10;
}
message Metrics {
double interval = 1;
map<string, double> items = 2;
}
message Process {
double cpu = 1;
int64 rss = 2;
}
message ChannelsRequest {
string pattern = 1;
}
message ChannelsResponse {
Error error = 1;
ChannelsResult result = 2;
}
message ChannelsResult {
map<string, ChannelInfo> channels = 1;
}
message ChannelInfo {
uint32 num_clients = 1;
}
message ConnectionsRequest {
string user = 1;
string expression = 2;
}
message ConnectionsResponse {
Error error = 1;
ConnectionsResult result = 2;
}
message ConnectionsResult {
map<string, ConnectionInfo> connections = 1;
}
message ConnectionInfo {
string app_name = 1;
string app_version = 2;
string transport = 3;
string protocol = 4;
// 5-7 dropped for backwards compatibility.
string user = 8;
ConnectionState state = 9;
}
message ConnectionState {
map<string, ChannelContext> channels = 1;
ConnectionTokenInfo connection_token = 2;
map<string, SubscriptionTokenInfo> subscription_tokens = 3;
bytes meta = 4;
}
message ChannelContext {
uint32 source = 1;
}
message ConnectionTokenInfo {
string uid = 1;
int64 issued_at = 2;
}
message SubscriptionTokenInfo {
string uid = 1;
int64 issued_at = 2;
}
message UpdateUserStatusRequest {
repeated string users = 1;
}
message UpdateUserStatusResponse {
Error error = 1;
UpdateUserStatusResult result = 2;
}
message UpdateUserStatusResult {}
message GetUserStatusRequest {
repeated string users = 1;
}
message GetUserStatusResponse {
Error error = 1;
GetUserStatusResult result = 2;
}
message GetUserStatusResult {
repeated UserStatus statuses = 1;
}
message UserStatus {
string user = 1;
int64 active = 2;
int64 online = 3;
}
message DeleteUserStatusRequest {
repeated string users = 1;
}
message DeleteUserStatusResponse {
Error error = 1;
DeleteUserStatusResult result = 2;
}
message DeleteUserStatusResult {
}
message BlockUserRequest {
int64 expire_at = 1;
string user = 2;
}
message BlockUserResult {}
message BlockUserResponse {
Error error = 1;
BlockUserResult result = 2;
}
message UnblockUserRequest {
string user = 1;
}
message UnblockUserResult {}
message UnblockUserResponse {
Error error = 1;
UnblockUserResult result = 2;
}
message RevokeTokenRequest {
int64 expire_at = 1;
string uid = 2;
}
message RevokeTokenResult {}
message RevokeTokenResponse {
Error error = 1;
RevokeTokenResult result = 2;
}
message InvalidateUserTokensRequest {
int64 expire_at = 1;
string user = 2;
int64 issued_before = 3;
string channel = 4;
}
message InvalidateUserTokensResult {}
message InvalidateUserTokensResponse {
Error error = 1;
InvalidateUserTokensResult result = 2;
}
message DeviceRegisterRequest {
string id = 1;
string provider = 2;
string token = 3;
string platform = 4;
string user = 5;
map<string, string> meta = 6;
repeated string topics = 7;
//map<string, string> labels = 8;
//map<string, int64> scores = 9;
}
message DeviceUpdateRequest {
repeated string ids = 1;
repeated string users = 2;
DeviceUserUpdate user_update = 4;
DeviceMetaUpdate meta_update = 5;
DeviceTopicsUpdate topics_update = 6;
//DeviceLabelsUpdate labels_update = 7;
//DeviceScoresUpdate scores_update = 8;
}
message DeviceRemoveRequest {
repeated string ids = 1;
repeated string users = 2;
}
message DeviceUserUpdate {
string user = 1;
}
message DeviceMetaUpdate {
map<string, string> meta = 1;
}
message DeviceTopicsUpdate {
string op = 1; // add | remove | set
repeated string topics = 2;
}
message DeviceFilter {
repeated string ids = 1;
repeated string users = 2;
repeated string topics = 3;
repeated string providers = 4;
repeated string platforms = 5;
}
message DeviceListRequest {
DeviceFilter filter = 1;
bool include_total_count = 2;
bool include_meta = 3;
bool include_topics = 4;
//bool include_labels = 5;
//bool include_scores = 6;
string cursor = 10;
int32 limit = 11;
}
message DeviceTopicFilter {
repeated string device_ids = 1;
repeated string device_providers = 2;
repeated string device_platforms = 3;
repeated string device_users = 4;
repeated string topics = 5;
string topic_prefix = 6;
}
message DeviceTopicListRequest {
DeviceTopicFilter filter = 1;
bool include_total_count = 2;
bool include_device = 3;
string cursor = 10;
int32 limit = 11;
}
message UserTopicFilter {
repeated string users = 1;
repeated string topics = 2;
string topic_prefix = 3;
}
message UserTopicListRequest {
UserTopicFilter filter = 1;
bool include_total_count = 2;
string cursor = 10;
int32 limit = 11;
}
message DeviceTopicUpdateRequest {
string device_id = 1;
string op = 2; // add | remove | set
repeated string topics = 3;
}
message UserTopicUpdateRequest {
string user = 1;
string op = 2; // add | remove | set
repeated string topics = 3;
}
message DeviceRegisterResponse {
Error error = 1;
DeviceRegisterResult result = 2;
}
message DeviceUpdateResponse {
Error error = 1;
DeviceUpdateResult result = 2;
}
message DeviceRemoveResponse {
Error error = 1;
DeviceRemoveResult result = 2;
}
message DeviceListResponse {
Error error = 1;
DeviceListResult result = 2;
}
message DeviceTopicListResponse {
Error error = 1;
DeviceTopicListResult result = 2;
}
message UserTopicListResponse {
Error error = 1;
UserTopicListResult result = 2;
}
message DeviceTopicUpdateResponse {
Error error = 1;
DeviceTopicUpdateResult result = 2;
}
message UserTopicUpdateResponse {
Error error = 1;
UserTopicUpdateResult result = 2;
}
message DeviceRegisterResult {
string id = 1;
}
message DeviceUpdateResult {
}
message DeviceRemoveResult {
}
message DeviceListResult {
repeated Device items = 1;
string next_cursor = 2;
int64 total_count = 3;
}
message Device {
string id = 1;
string platform = 2;
string provider = 3;
string token = 4;
string user = 5;
int64 created_at = 6;
int64 updated_at = 7;
map<string, string> meta = 10;
repeated string topics = 11;
//map<string, string> labels = 12;
//map<string, int64> scores = 13;
}
message DeviceTopicListResult {
repeated DeviceTopic items = 1;
string next_cursor = 2;
int64 total_count = 3;
}
message DeviceTopic {
string id = 1;
string topic = 2;
Device device = 3;
}
message UserTopicListResult {
repeated UserTopic items = 1;
string next_cursor = 2;
int64 total_count = 3;
}
message DeviceTopicUpdateResult {
}
message UserTopicUpdateResult {
}
message UserTopic {
string id = 1;
string user = 2;
string topic = 3;
}
message PushRecipient {
DeviceFilter filter = 1;
repeated string fcm_tokens = 2;
string fcm_topic = 3;
string fcm_condition = 4;
repeated string hms_tokens = 5;
string hms_topic = 6;
string hms_condition = 7;
repeated string apns_tokens = 8;
}
message PushNotification {
FcmPushNotification fcm = 1;
HmsPushNotification hms = 2;
ApnsPushNotification apns = 3;
string uid = 4; // unique identifier for push notification, used for matching in Centrifugo analytics.
int64 expire_at = 5; // timestamp in the future when Centrifugo should stop trying to send push notification.
}
message FcmPushNotification {
bytes message = 1;
}
message HmsPushNotification {
bytes message = 1;
}
message ApnsPushNotification {
map<string, string> headers = 1;
bytes payload = 2;
}
message SendPushNotificationRequest {
PushRecipient recipient = 1;
PushNotification notification = 2;
}
message SendPushNotificationResponse {
Error error = 1;
SendPushNotificationResult result = 2;
}
message SendPushNotificationResult {
string uid = 1; // Unique identifier of notification send request (it's not a FCM message id).
}
message UpdatePushStatusRequest {
string uid = 1; // uid of push notification (matches SendPushNotificationResult.uid)
string status = 2; // failed | sent | delivered | interacted
string device_id = 3; // Centrifugo device id.
string msg_id = 4; // Provider issued message id.
}
message UpdatePushStatusResponse {
Error error = 1;
UpdatePushStatusResult result = 2;
}
message UpdatePushStatusResult {}

File diff suppressed because it is too large Load Diff

View File

@ -1,46 +0,0 @@
package apiproto
// import (
// context "context"
// "log/slog"
// grpc "google.golang.org/grpc"
// "joylink.club/bj-rtsts-server/config"
// "joylink.club/bj-rtsts-server/dto"
// )
// // Centrifugo 实时消息传递客户端
// var client CentrifugoApiClient
// // Centrifugo 客户端初始化
// func InitClient() {
// conn, err := grpc.Dial(config.Config.Messaging.Centrifugo.Address, grpc.WithInsecure())
// if err != nil {
// panic(dto.ErrorDto{Code: dto.DataOperationError, Message: err.Error()})
// }
// client = NewCentrifugoApiClient(conn)
// }
// // 返回 Centrifugo 客户端
// func Cli() CentrifugoApiClient {
// return client
// }
// // 发布消息
// func PublishMsg(channalName string, data []byte) {
// if len(data) == 0 {
// return
// }
// resp, err := client.Publish(context.Background(), &PublishRequest{
// Channel: channalName,
// Data: data,
// })
// if err != nil {
// slog.Error("Transport level error", "error", err)
// } else {
// if resp.GetError() != nil {
// respError := resp.GetError()
// slog.Error("Publish msg error ", "channalName", channalName, "errCode", respError.Code, "errMsg", respError.Message)
// }
// }
// }

View File

@ -5,6 +5,7 @@ import (
"time"
"google.golang.org/protobuf/proto"
"joylink.club/bj-rtsts-server/config"
"joylink.club/bj-rtsts-server/message_server/ms_api"
"joylink.club/bj-rtsts-server/ts/protos/graphicData"
"joylink.club/bj-rtsts-server/ts/protos/state"
@ -25,7 +26,8 @@ func NewIBPMs(vs *memory.VerifySimulation, mapId int32) *IbpMs {
}
func (ms *IbpMs) GetChannel() string {
return "simulation-ibp-%s_%d_%s-status"
return SimulationDeviceStatesTopicPrefix + "/ibp/%s"
// return "simulation-ibp-%s_%d_%s-status"
}
func (ms *IbpMs) GetInterval() time.Duration {
@ -162,5 +164,5 @@ func (ms *IbpMs) collectIBPKeyState(stationUid string, ibpKeys []*graphicData.Ib
// 处理订阅通道名称
func (ms *IbpMs) handlerIBPChannelName(stationId string) string {
return fmt.Sprintf(ms.GetChannel(), ms.vs.SimulationId, ms.mapId, stationId)
return fmt.Sprintf(ms.GetChannel(), config.SystemName, ms.vs.SimulationId, ms.mapId, stationId)
}

View File

@ -2,12 +2,14 @@ package message_server
import (
"fmt"
"time"
"joylink.club/ecs"
"joylink.club/rtsssimulation/component"
"joylink.club/rtsssimulation/entity"
"time"
"google.golang.org/protobuf/proto"
"joylink.club/bj-rtsts-server/config"
"joylink.club/bj-rtsts-server/message_server/ms_api"
"joylink.club/bj-rtsts-server/ts/protos/graphicData"
"joylink.club/bj-rtsts-server/ts/protos/state"
@ -25,7 +27,8 @@ func NewPSLMs(vs *memory.VerifySimulation, mapId int32) *PslMs {
}
func (p *PslMs) GetChannel() string {
return "simulation-psl-%s_%d_%s-status"
return SimulationDeviceStatesTopicPrefix + "/psl/%s"
// return "simulation-psl-%s_%d_%s-status"
}
func (p *PslMs) GetInterval() time.Duration {
@ -54,7 +57,7 @@ func (p *PslMs) OnError(err error) {}
// 处理订阅通道名称
func (p *PslMs) handlerPSLChannelName(gateBoxId string) string {
return fmt.Sprintf(p.GetChannel(), p.vs.SimulationId, p.mapId, gateBoxId)
return fmt.Sprintf(p.GetChannel(), config.SystemName, p.vs.SimulationId, p.mapId, gateBoxId)
}
func (p *PslMs) collectGateBoxPSLState(box *graphicData.GatedBox) (*state.PushedDevicesStatus, error) {

View File

@ -24,7 +24,7 @@ func NewRccMs(vs *memory.VerifySimulation, mapId int32) *RccMs {
return &RccMs{
vs: vs,
mapId: mapId,
channel: fmt.Sprintf("simulation-%s_%d-devices-status", vs.SimulationId, mapId),
channel: fmt.Sprintf(SimulationDeviceStatesTopicPrefix, vs.SimulationId, mapId),
}
}

View File

@ -26,7 +26,7 @@ func NewSfpMs(vs *memory.VerifySimulation, mapId int32) *SfpMs {
return &SfpMs{
vs: vs,
mapId: mapId,
channel: fmt.Sprintf("simulation-%s_%d-devices-status", vs.SimulationId, mapId),
channel: fmt.Sprintf(SimulationDeviceStatesTopicPrefix, vs.SimulationId, mapId),
}
}

View File

@ -4,12 +4,19 @@ import (
"sync"
"time"
"joylink.club/bj-rtsts-server/config"
"joylink.club/bj-rtsts-server/message_server/ms_api"
"joylink.club/bj-rtsts-server/message_server/ms_manage"
"joylink.club/bj-rtsts-server/ts/protos/graphicData"
"joylink.club/bj-rtsts-server/ts/simulation/wayside/memory"
)
const (
SimulationTopicPrefix = "/" + config.SystemName + "/simulation/"
SimulationStateTopicPrefix = SimulationTopicPrefix + "%s/state/%d"
SimulationDeviceStatesTopicPrefix = SimulationTopicPrefix + "%s/devicestates/%d"
)
var smsMap sync.Map
// 仿真消息服务

View File

@ -2,13 +2,14 @@ package ts
import (
"fmt"
"joylink.club/bj-rtsts-server/third_party/axle_device"
"log/slog"
"runtime"
"strconv"
"sync"
"joylink.club/bj-rtsts-server/config"
"joylink.club/bj-rtsts-server/mqtt"
"joylink.club/bj-rtsts-server/third_party/axle_device"
"joylink.club/bj-rtsts-server/message_server"
"joylink.club/bj-rtsts-server/sys_error"
"joylink.club/bj-rtsts-server/third_party/dynamics"
@ -145,8 +146,10 @@ func stopThirdParty(s *memory.VerifySimulation) {
}
func createSimulationId(projectId int32) string {
// 当前服务器IP + 端口 + 项目
return config.SimulationId_prefix + "_" + strconv.Itoa(config.Config.Server.Port) + "_" + strconv.Itoa(int(projectId))
// // 当前服务器IP + 端口 + 项目
// return config.SimulationId_prefix + "_" + strconv.Itoa(config.Config.Server.Port) + "_" + strconv.Itoa(int(projectId))
// MQTT客户端id+项目
return mqtt.GetClientId() + "_" + strconv.Itoa(int(projectId))
}
// 获取仿真列表