javascript - 带有 WebSockets 的 Nuxt JS
问题描述
我有一个 Nuxt 应用程序,其中一项服务需要通过 WebSockets 交付。Nuxt App Server 使用 express 提供 api 服务。
我有一个 /api 文件夹,其中有各种 *.js 文件,这些文件已成功路由。IE...
const express = require('express');
const app = express();
app.get('/whatever1',(req, res) => console.log('req.url',req.url))
工作正常。
但是,在同一文件中的以下内容将永远无法到达....
const express = require('express');
const app = express();
const expressWs = require('express-ws')(app);
app.ws('/whatever2',(ws,req) => {
console.log('req.url',req.url);
})
我哪里错了?
解决方案
您正在尝试将客户端连接到服务器上不存在此类端点的端点。在客户的输出中,您收到以下错误:
VM1295:1 WebSocket connection to 'ws://localhost:3000/api/whatever2' failed: Connection closed before receiving a handshake response
因为你还没有定义 /api/whatever2 的路由。您上面的代码路由到:
ws://localhost:3000/whatever2
代替ws://localhost:3000/api/whatever2
编辑:
这是对我有用的测试代码:
const express = require('express');
var app = express();
const expressWS = require('express-ws')(app);
expressWS.getWss().on('connection', function (ws) {
console.log('connection open');
});
app.ws('/whatever', (ws, res) => {
console.log('socket', ws);
});
app.listen(3000, () => console.log('listening on 3000...'));
推荐阅读
- reactjs - 反应功能不返回元素
- python - Joblib 导入错误。尝试加载一个我认为它不应该首先寻找的库
- entity-framework - 没有显示带有 EF 核心的 SqlException 的异常详细信息
- java - 如何在文件中写入/读取对象数组?
- c# - Linq 将指标值转换为附加列并聚合数据
- php - 新错误 Invalid parameter number: number of bound variables does not match number of tokens
- javascript - 使用没有事件侦听器的 Javascript 检测设备运动
- c++ - 我无法使用 Qt 引用 QSettings
- r - R:按日期排序(按年、按月)
- ios - FCM 生产和开发通知来自控制台但不是来自 dot net 服务器