1***@qq.com
1***@qq.com
  • 发布:2024-08-16 04:04
  • 更新:2025-10-18 19:34
  • 阅读:1192

unicloud怎么做websocket接口呢?

分类:uniCloud

我有一个非uniapp体系的前端页面,如果想和unicloud用websocket通信有什么方案没,有没有类似云函数url化的接口

2024-08-16 04:04 负责人:无 分享
已邀请:
套马杆的套子

套马杆的套子 - 没有解决不了的问题,只有解决不完的问题

  • 1***@qq.com (作者)

    你好,可以帮忙看看下面的回复吗

    2024-08-16 18:05

DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

有的,可以通过云函数URL调用这个接口https://doc.dcloud.net.cn/uniCloud/websocket.html#unicloud-ws-signedurl,生成websocket连接地址。就可以在非uniapp体系下用了。

  • 1***@qq.com (作者)

    你好,是作为websocket服务端使用吗,我看文档里说云函数不可以作为websocket服务端使用。我在云对象里测试了一下,通过运行本地云对象的方式调试时,提示我signedURL is not function。

    2024-08-16 17:44

  • 1***@qq.com (作者)

    const ws = uniCloud.webSocketServer();

    module.exports = {

    _before: function() {


    },  

    async getWsAddress() {
    try {
    let res = await ws.signedURL("wss", {
    key: "val"
    });
    return res;
    } catch (error) {
    console.error('生成WebSocket地址时出错:', error);
    }
    }

    }这是我写在云对象中的测试代码,可以帮忙看下吗

    2024-08-16 17:47

  • DCloud_uniCloud_CRL

    回复 1***@qq.com: 你是支付宝云服务空间吗?

    2024-08-19 11:38

  • 3***@qq.com

    回复 DCloud_uniCloud_CRL: 我在支付宝云空间中,使用上述代码成功有返回值。但是,我像问一下,返回的这个wss地址是不是永久的?另外,我像实现物联网,ESP32单片机实时连接支付宝云空间。请问有相关的例子吗?我在网上没有搜索到。

    2024-11-12 23:29

  • DCloud_uniCloud_CRL

    回复 3***@qq.com: 不是永久的,每次连接之前重新获取一下最新的连接地址就行了。你的单片机只要支持网络连接,理论上就可以,这是标准的websocket协议。

    2024-11-13 11:21

  • 5***@qq.com

    回复 DCloud_uniCloud_CRL: 不是支付宝云就不行吗?我是阿里云的

    2025-07-03 22:47

  • DCloud_uniCloud_CRL

    回复 5***@qq.com: websocket目前仅有支付宝云支持。

    2025-07-07 11:42

3***@qq.com

3***@qq.com

有没有大佬知道下面错误时怎么回事:
[WebSocket测试-info] 页面加载完成,准备进行WebSocket测试
mp.esm.js:481 [WebSocket测试-info] 开始连接WebSocket...
mp.esm.js:481 [WebSocket测试-info] 连接云函数: test-websocket-simple
mp.esm.js:481 [WebSocket测试-info] 用户ID: test-user-001, 房间ID: test-room-001
mp.esm.js:481 [WebSocket测试-info] 连接URL: wss://env-00jxu6p5yucw.api-hz.cloudbasefunction.cn/ws?name=test-websocket-simple&userId=test-user-001&roomId=test-room-001
mp.esm.js:481 [WebSocket测试-info] Socket连接请求已发起
mp.esm.js:481 [WebSocket测试-info] SocketTask对象已创建
WebSocket connection to 'wss://env-00jxu6p5yucw.api-hz.cloudbasefunction.cn/ws?name=test-websocket-simple&userId=test-user-001&roomId=test-room-001' failed: (env: Windows,mp,1.06.2504030; lib: 3.10.0)
(anonymous) @ uni.api.esm.js:904
invokeApi @ uni.api.esm.js:330
promiseApi @ uni.api.esm.js:793
connectWebSocket @ test-simple-websocket.vue:216
(anonymous) @ test-simple-websocket.vue:283
callWithErrorHandling @ vue.runtime.esm.js:1356
callWithAsyncErrorHandling @ vue.runtime.esm.js:1363
invoke @ vue.runtime.esm.js:5577
mp.esm.js:481 [WebSocket测试-error] 连接错误: {"errMsg":"未完成的操作"}
mp.esm.js:481 [WebSocket测试-warn] 连接已关闭: {"code":1006,"reason":"abnormal closure"}
[worker] reportRealtimeAction:fail not support
U @ WAWorker.js:1
invoke @ WAWorker.js:1
invoke @ WAWorker.js:1
G @ WAWorker.js:1
(anonymous) @ WAWorker.js:1
qe @ WAWorker.js:1
Z @ WAWorker.js:1
p @ WAWorker.js:1
(anonymous) @ WAWorker.js:1
(anonymous) @ WAWorker.js:1
setTimeout (async)
globalThis.setTimeout @ WAWorker.js:1
Y @ WAWorker.js:1
Le @ WAWorker.js:1
(anonymous) @ WAWorker.js:1
r @ WAWorker.js:1
s @ WAWorker.js:1
callAndRemove @ WAWorker.js:1
invokeCallbackHandler @ WAWorker.js:1
eval @ VM11:1

要回复问题请先登录注册