Skip to content

Conversation

@xtlsee
Copy link
Contributor

@xtlsee xtlsee commented Nov 8, 2025

需要将 WrapLink 方法抽取到 Dispatcher 接口

因为 Custom 的 DefaultDispatcher 注入到 Xray-core 会出现:

panic: interface conversion: routing.Dispatcher is *dispatcher.DefaultDispatcher, not *dispatcher.DefaultDispatcher (types from different packages)

所以需要抽象接口,之前的设计都是接口,感觉这个属于设计缺陷

	handler := &Handler{
		inboundHandlerManager:  v.GetFeature(feature_inbound.ManagerType()).(feature_inbound.Manager),  // interface
		policyManager:          v.GetFeature(policy.ManagerType()).(policy.Manager),  // interface
		validator:              validator,
		outboundHandlerManager: v.GetFeature(outbound.ManagerType()).(outbound.Manager),  // interface
		dispatcher:             v.GetFeature(routing.DispatcherType()).(routing.Dispatcher),
		ctx:                    ctx,
	}

@Fangliding
Copy link
Member

好好说话我看到会reopen的 我甚至之前看你还开了一个这第三个了都
其他两个的wraplink不应该为noop 如果要加应该是类似这样

func (w *BridgeWorker) WrapLink(ctx context.Context, link *transport.Link) *transport.Link {
	return w.Dispatcher.WrapLink(ctx, link)
}

然后调用自己的WrapLink

@xtlsee
Copy link
Contributor Author

xtlsee commented Nov 8, 2025

大佬,我这里再改一下嘛?
但是之前的 Server 和 BridgeWorker 是 noop,如果添加下面的代码会不会有问题?

return w.Dispatcher.WrapLink(ctx, link)

@Fangliding
Copy link
Member

它们本来也没人call啊

@xtlsee
Copy link
Contributor Author

xtlsee commented Nov 8, 2025

那添加这个的作用是什么?

return w.Dispatcher.WrapLink(ctx, link)

@Fangliding
Copy link
Member

因为这样noop摆着不好 要声明出接口起码让它有作用

@xtlsee
Copy link
Contributor Author

xtlsee commented Nov 8, 2025

要不我加点注释吧,防止以后维护不明确?

@Fangliding
Copy link
Member

就按我说的有问题吗这种类wrapper不都是这么写的

@xtlsee
Copy link
Contributor Author

xtlsee commented Nov 8, 2025

稍等这就去改

@xtlsee
Copy link
Contributor Author

xtlsee commented Nov 8, 2025

已经改好了,您review一下

@Fangliding
Copy link
Member

你这。。。

@wyx2685
Copy link
Contributor

wyx2685 commented Nov 8, 2025

@Fangliding 这个问题不抱希望了

@Fangliding
Copy link
Member

还是我来写吧 不太能沟通

@Fangliding Fangliding closed this Nov 8, 2025
@wyx2685
Copy link
Contributor

wyx2685 commented Nov 8, 2025

实际需求是#5133

RPRX pushed a commit that referenced this pull request Nov 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants