2024-09-05 15:22:56,309 [action:思源笔记websocket] INFO Quicker.Domain.AppServer - 执行动作:思源笔记websocket id=002bc84f-2cfb-4686-bdb9-15dd76640613
2024-09-05 15:22:56,323 [53] WARN RuWb3AbQCUrwpLLrAby.W06BVybaWpt1NXQUBRp - 处理Websocket消息出错:无法找到子程序:onmessage
System.InvalidOperationException: 无法找到子程序:onmessage
在 Quicker.Domain.Actions.X.SubPrograms.SubProgramHelper.<RunStandaloneSubprogram>d__18.MoveNext()
--- 引发异常的上一位置中堆栈跟踪的末尾 ---
在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
在 Quicker.Domain.Actions.ActionExecuteContext.RunSp(String spName, IDictionary`2 inputParams)
在 Quicker.Domain.AppServer.ExecuteActionSubProgram(String actionIdOrNameOrTempplateId, String spName, IDictionary`2 inputParams, ActionExtraContextData actionExtraContextData, Nullable`1 cts)
在 RuWb3AbQCUrwpLLrAby.W06BVybaWpt1NXQUBRp.XUcZFYotCs(Object , MessageEventArgs )
我也遇到了这个问题,我还遇到一个问题,就是回调子程序里的返回结果无法传递给主程序,子程序和主程序之间也无法通过全局变量传递数据,我目前只能通过剪切板来交互,请教下你是如何解决这个问题的?
这是我的演示动作 https://getquicker.net/Sharedaction?code=325829b7-7011-47b8-1221-08dd062f9162&fromMyShare=true
我是想实现quicker向思源发送js代码并返回执行结果时遇到的问题,所以我目前暂时放弃websocket互发方案,使用http请求方案代替 https://getquicker.net/SubProgram?id=cb322876-e4a3-462a-e322-08dd0733f195
感谢大佬!
我测试了,用读写动作状态也可以主子共享数据的。
不过还有两个小问题:
1. quicker里websocket链接服务器不知道怎么加头信息,所以如果用户设置了授权码,就无法认证,我把token加到websocket连接的url中及使用cookie虽然能实现认证,总感觉别扭,cooke用户不好获取,放URL总感觉怪怪的,不知quicker webscoket连接怎么设置header?
2. quicker里关闭websocket连接,竟然花了5s多,不知道在干什么?quicker bug?这个一定要警惕,之前这个步骤放前面总感觉有延迟,后来才发现是这个问题。
演示地址:https://getquicker.net/Sharedaction?code=325829b7-7011-47b8-1221-08dd062f9162
请求头可以参考:思源API(子程序) - 子程序信息 - Quicker
你为啥要关闭连接?一直连着就好了。