- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我要加 ngx-socket-io到我的 Angular 应用程序。我使用 Bazel 来运行我的 Angular 开发服务器。
不幸的是 ngx-socket-io
似乎不适用于 ts_devserver
盒子外面。我在浏览器控制台中收到此错误:
Uncaught TypeError: XMLHttpRequest is not a constructor
at ts_scripts.js?v=1587802098203:16776
at Object.23.../transport (ts_scripts.js?v=1587802098203:16780)
at o (ts_scripts.js?v=1587802098203:11783)
ngx-socket-io
需要它.但是这个问题只发生在
ts_devserver 上。 .
在 production 中运行 Angular 应用程序工作得很好。
yarn install
然后
yarn dev
(它会导致浏览器控制台 @
http://localhost:4200 中的错误)。
yarn prod
@
http://localhost:8080工作得很好!
最佳答案
问题来自engine.io-client
, socket.io-client
内部使用:
当socket.io-client
构建为由触发的 UMD 模块
"@npm//socket.io-client:socket.io-client__umd",
BUILD.bazel
,
browser
engine.io-client/package.json
的 key :
"browser": {
"ws": false,
"xmlhttprequest-ssl": "./lib/xmlhttprequest.js"
},
require('xmlhttprequest-ssl')
node_modules/engine.io-client/lib/transports/*.js
中的语句保留在 UMD 构建中。因为
xmlhttprequest-ssl
用于 headless 节点环境并且在浏览器中不起作用,这会导致错误。
engine.io-client
与
postinstall
脚本:
shelljs
包裹:yarn add -D shelljs
postinstall
在 package.json
至:"postinstall": "node --preserve-symlinks --preserve-symlinks-main ./postinstall-patches.js && ngcc"
postinstall-patches.js
在项目根目录:try {
require.resolve('shelljs');
} catch (e) {
// We are in an bazel managed external node_modules repository
// and the resolve has failed because node did not preserve the symlink
// when loading the script.
// This can be fixed using the --preserve-symlinks-main flag which
// is introduced in node 10.2.0
console.warn(
`Running postinstall-patches.js script in an external repository requires --preserve-symlinks-main node flag introduced in node 10.2.0. ` +
`Current node version is ${process.version}. Node called with '${process.argv.join(' ')}'.`);
process.exit(0);
}
const {set, cd, sed, ls} = require('shelljs');
const path = require('path');
const log = console.info;
log('===== about to run the postinstall-patches.js script =====');
// fail on first error
set('-e');
// print commands as being executed
set('-v');
cd(__dirname);
log('\n# patch engine.io-client: rewriting \'xmlhttprequest-ssl\' to browser shim');
ls('node_modules/engine.io-client/lib/transports/*.js').forEach(function (file) {
sed('-i', '\'xmlhttprequest-ssl\'', '\'../xmlhttprequest\'', file);
});
log('===== finished running the postinstall-patches.js script =====');
yarn install
yarn dev
socket.io-client/dist/socket.io.js
但是有一个额外的“UMD shim”,因为它似乎是一个“匿名 UMD”模块,或者 npm_umd_bundle
魔术 bazelbuild/rules_nodejs
有关这两种方式的更多信息。
关于angular - Bazel + Angular + SocketIO 导致 : Uncaught TypeError: XMLHttpRequest is not a constructor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61423031/
我正在选择一个 python 库来编写一个嵌入我网站的实时聊天功能页面。 我找到了两个基于 Socket.IO 的库,python-socketio 和 gevent-socketio: 来自 pyt
我正在使用 socketio 和 netty 以及 java,我对它们都是新手。 我的客户端代码如下所示。 webSocket test
我正在尝试在外部值发生变化时发送广播。 Camonitor 在值改变时调用回调,我想通知所有连接的客户端值已经改变,他们需要刷新。 from flask import Flask from epics
我在使用 flasks socketio 时遇到了问题,似乎当我调用 socketio.emit('my event', 'my message') 时它根本不会发出任何事件。 .. 所以这是我的设置
我有一个 socketio 服务器/客户端可以很好地协同工作,但是我想开始为服务器在页面加载或正常运行期间脱机时编写事件。 我在我的头文件中包含了远程 socket.io 代码: /socket.io
我正在使用 flask-socketio 和 python-socketio 开发一个项目。为了确保通信安全,系统需要使用 SSL 进行升级。我正在使用 Mac 和 Python 3.7。 我使用 o
我目前正在尝试了解套接字的工作原理。我正在使用 Flask-socketio 和 python socketio 客户端并运行一个基本示例。这是我到目前为止所做的 应用.py from flask i
我正在尝试使用 Socket.IO 开发一个聊天应用程序。我的服务器端是安装了 express + socket.io 库的 Node.js,我的客户端是 Android + Web。 我尝试在我的客
我正在构建一个 Android 聊天应用程序。我在服务器端使用 nodejs 并尝试实现 android client for socketIO.我收到 SocketIO 异常。代码有什么问题? 服务
我将 Flask 与 gevent-socketio 一起使用: $ cat requirements.txt Flask==0.10.1 Jinja2==2.7.1 MarkupSafe==0.18
我正在为某个项目使用 netty-socketio。我像这样设置了一个服务器: Configuration config = new Configuration(); config.setHostna
所以,我需要收集很多数据,比如每秒 3 个单位的数据,由很多人收集。我将收集此数据的事件命名为“捕获”。 我正在使用 JWT 对其他数据密集度较低的事件进行身份验证。 现在,我只是担心使用每个数据密集
socketio不仅可以用来做聊天工具,也可以实现局域网(当然你如果有外网也可用外网)内实现文件的上传和下载,下面是代码的效果演示: git地址: https://github.com/fen
我正在使用 flask-socketio 创建一个聊天应用程序,现在我想在客户端断开连接时使用客户端的用户名向服务器发送一条消息,即当客户端关闭浏览器/选项卡时,以便我可以将该消息从服务器发送到所有现
我正在尝试向从单独文件连接的所有套接字发出。但是我似乎无法弄清楚。 Socket.js var socketio = require('socket.io'); var users = require
我尝试在我的 django 应用程序中实现与 django-socketio 的聊天。 首先要了解django-socketio,所以看了https://github.com/stephenmcd/d
我对网络编程有点陌生。我现在正在尝试编写一个服务器。在服务器端我有一个方法: socket.on("joinserver", function(name, device) { }); 在客户端,
我正在尝试将数据从客户端发送到服务器端。我只得到未定义。我希望用户单击 ledOn 函数来发送 1 ,并单击 ledOff 来发送 0 到服务器。 server.js io.sockets.on('c
我使用nodejs设置了一个简单的Socket服务器gameIo gameIo.on("connection", socket => { socket.on("sign up", () => {
我想知道是否有一种方法可以在两个(或多个)flask-socketio 服务器之间直接通信。我想在服务器之间传递信息,并让客户端连接单个 Web 套接字服务器,该服务器将具有来自其他服务器的所有组合逻
我是一名优秀的程序员,十分优秀!