const { nanoid } = require('nanoid') const sha256 = require('sha256') const WebSocket = require('ws')

module.exports = { async connectToWebSocket(ctx) { const wss = new WebSocket.Server({ port: 3001 })

wss.on('connection', ws => {
  const appId = '0c1b5e4ca7aaa024'
  // const secretKey = 'dPRBMN0Yskb3KvB5JWRTAFclDAmO6fu3'
  const secretKey = '3IzRWkQmbU2Qb3Vpk4DKFwGv9wciYxoS'

  const salt = nanoid()
  const curtime = Math.floor(Date.now() / 1000)
  const sign = sha256(appId + salt + curtime + secretKey)
  const signType = 'v4'
  const langType = 'zh-CHS'
  const format = 'wav'
  const channel = '1'
  const version = 'v1'
  const rate = '16000'

  const params = `appKey=${appId}&salt=${salt}&curtime=${curtime}&sign=${sign}&signType=${signType}&langType=${langType}&format=${format}&channel=${channel}&version=${version}&rate=${rate}`

  ws.on('message', data => {
    const youdaoWs = new WebSocket(`wss://openapi.youdao.com/stream_asropenapi?${params}`) //填服务器地址
    youdaoWs.addEventListener('open', () => {
      console.log('连接上服务器了')
      youdaoWs.send(data)
    })

    // 服务器返回的数据
    youdaoWs.addEventListener('message', ({ data }) => {
      console.log(data)
      ws.send(data)
    })
  })

  ws.on('close', () => {
    console.log('关闭连接了')
  })
})

},

const nanoid = requirenanoidconst sha256 = requiresha256const WebSocket = requirewsconst wss = new WebSocketServerport3001wssonconnection ws = const appId = 0c1b5e4ca7aaa024 const secretKey

原文地址: https://www.cveoy.top/t/topic/h3YC 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录