【问题标题】:ExpressJS only accepts POST 6 times?ExpressJS 只接受 POST 6 次?
【发布时间】:2018-08-20 19:00:51
【问题描述】:

我有一个 ElectronJS 应用来播放音乐,我正在开发一个“远程”,我可以使用它通过浏览器通过其他设备控制我的应用。

我使用了 ExpressJS 和 Socket.IO,但无论我做什么,播放、暂停、下一首曲目或上一首曲目,一切正常,但只有 6 次,即如果我按播放暂停按钮 6 次,它就会停止第七次工作。这是我在客户端(远程)上使用的代码

  $('#previous').click(function () {
    $.post('/prevsong')
  })

  $('#playpause').click(function(){
    $.post('/playpause')
  })

  $('#next').click(function () {
    $.post('/nextsong')
  })

这是我在 ElectronJS 应用中使用的代码

app.post('/playpause', function () {
  // Play Pause audio tag in the Electron app
})    

app.post('/nextsong', () => {
  // Next Song Code
})

app.post('/prevsong', () => {
  // Previous Song Code
})

我是 ExpressJS 和服务器端的新手,我做错了什么?我该如何解决这个问题?谢谢!

【问题讨论】:

  • 我不是节点/电子专家,但是,有趣的症状!我想知道您是否每次都打开一个新套接字,而不是保持一个套接字打开并通过它发送消息(或使用非 websocket 请求)。显然,Electron 客户端的每服务器连接限制为 6。github.com/electron/electron/issues/4391
  • 但是我用 app.get('/playback/:key') 替换了 app.post,现在它可以工作超过 6 次,但它真的很慢! D:

标签: node.js express electron


【解决方案1】:

我通过用app.get 替换app.post 解决了这个问题,如果其他人遇到同样的问题,这就是我所做的

  app.get('/playback/:key', (request, response, next) => {
    response.send(request.params.key + ' button pressed');
    // Do something
  })

然后这个在客户端

  $('#previous').click(function () {
    $.get('/playback/prevsong')
  })

  $('#playpause').click(function(){
    $.get('/playback/playpause')
  })

  $('#next').click(function () {
    $.get('/playback/nextsong')
  })

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-17
    • 2014-09-27
    • 2016-04-05
    • 2020-07-04
    • 2018-11-13
    相关资源
    最近更新 更多