问题标签 [ws]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
react-native - 无法使用在 Expo 中运行的 React App 远程连接到 WebSocket 服务器
我在尝试在 React Native 应用程序客户端(在 Expo 中运行)和 NodeJs 服务器之间建立 WebSocket 连接时没有成功,使用双方的“ws”websocket 库。
我已经设置了 WebSocket 服务器,在输入 IP 地址和端口(例如“ws://192.168.208.1:8080”后,我可以使用 chrome 扩展 websocket 客户端成功连接到该服务器。
我已经在应用程序中设置了客户端代码,但它无法连接到服务器!但是,我可以毫无问题地连接到 Websocket echo url 'wss://echo.websocket.org/' 并向其发送消息!
所以代码在测试用例的两边都正常工作,看起来远程连接有问题。
健全性检查 1. 两台设备都在同一个 wi-fi 网络上 2. 我在禁用防火墙后尝试连接
客户代码:
node.js - 在 Nodejs 中跟踪 WS 客户端
我ws
通过一个 express 插件使用,express-ws
. 我的后端需要跟踪客户,并且只向特定的或客户发送消息。现在,我只是将客户端套接字与令牌一起保存。因此,当客户端连接时,客户端会发送如下消息:
{"path":"/openUserSocket","token":"<CLIENT_TOKEN_VALUE>"}
这会在后端注册一个套接字。套接字由一个类管理,该类wscManager
将套接字保存在一个普通对象中。所以,要注册一个套接字,我这样做:
现在,正如我在上面的代码中所示,我正在尝试保存套接字以供以后使用。set
只需将令牌用作将套接字对象保存在另一个对象中的键。稍后,get(token)
可以与那个令牌一起使用套接字。我还扩展了 express 应用原型以允许其他路由句柄使用wscManager
:
现在,我的问题是这是正确的客户跟踪方法吗?在其他路由处理程序中,管理器的使用方式如下:
感谢您的时间和耐心。
node.js - 测试 WebSocket 时如何阻止 Jest 挂起?
我在 node.js 中创建了一个应用程序,它使用服务器上 NPM 的“ws”包为我提供了一个 WebSocket 接口。现在我想用 Jest 测试这个接口。测试运行成功,但 Jest 没有退出并给我错误:
测试运行完成后一秒钟,Jest 没有退出。
我阅读了文档,发现我必须在测试中使用该done
参数并在测试完成时调用它。
服务器将在函数中启动并在Jest 给出的beforeAll
函数中停止。afterAll
我希望测试完成后 Jest 会成功停止。
javascript - Javascript WebSocket服务器未收到消息
我制作了一个非常简单的 WebSocket 应用程序来学习基础知识,我取得了一些成功,但我遇到了一个我似乎无法解决的问题,主要是因为我没有收到任何错误。
客户:
服务器:
当我打开浏览器窗口时,服务器成功记录“新连接”,但是当我尝试通过按钮#sendbtn 向服务器发送消息时,服务器没有任何反应,它不会记录消息。
我直接从文件 API 运行它,即不在 XAMPP 上,这可能是这里的问题吗?感谢您的任何建议!
php - 将数组从 Python 发送到 PHP
我正在尝试使用 Python 使用在 PHP 中创建的 WSDL。
服务片段:
客户:
但是在运行时,以这种方式发送参数是行不通的,不像在 PHP 中使用客户端发送参数的方式是正确的'numbers' => array (1, 2, 3)
并且可以正常工作。
java - ESP8266 上的 Websocket 客户端不向 spring-boot 服务器发送数据
我有一个带有 ESP8266 和 Spring Boot 服务器的简单项目。我想通过 websocket 将数据从 ESP 发送到服务器。
在 ESP 上,我使用这个库来创建 Stomp 客户端:https ://github.com/ukmaker/StompClient
Spring Boot ws 配置:
WS控制器:
ESP8266:
我没有任何错误消息。它只是不发送任何数据。
ios - 我正在尝试连接我的实时服务器。在 iOS 中出现连接被拒绝错误
我正在尝试连接我的实时服务器以进行 Web 套接字连接。但是我在 iOs 中遇到了错误。
websocket已断开连接:可选(错误域=NSPOSIXErrorDomain Code=61“连接被拒绝”UserInfo={_kCFStreamErrorCodeKey=61,_kCFStreamErrorDomainKey=1})
我已经尝试过使用其他服务器,但它可以使用它。只是没有在我的代码中使用指定的服务器。两台服务器都有 https。
这是我的 iOS 源代码链接: https ://www.dropbox.com/s/v348vxxjf74dsds/websocket.zip?dl=0
请找到以下服务器端代码:
node.js - 如何识别 websocket 连接来自哪个会话?
我正在开发游戏。每个玩家都有一个会话,登录后我会保留他的名字。登录后,每个玩家都通过 websocket 连接。如何将播放器会话绑定到 websocket?我想确保每个玩家会话只能同时打开一个 websocket,如果他打开另一个(例如在新标签中)我关闭前一个。
如果我在本地主机上运行应用程序,一切正常。来自 post 的 req.sessionID 与 websocket 中的 req.sessionID 相同。
但是,如果我将应用程序放在服务器上,会话会有所不同。在 verifyClient connect.sid 的 info 对象的标头中不存在。
我该如何解决?
node.js - 如何将 websocket 与具有快速会话和护照的用户相关联?
我的目标是将消息发送到属于用户的套接字,因此用户只能看到他们的信息或他们的用户角色。
到目前为止,我已经尝试了来自ws github和旧 SO 问题的示例代码。这个想法是将 express-session 解析器对象传递给 Websocket.Server verifyClient 函数。然后当创建一个新的套接字时,我可以将会话信息与套接字相关联。我的问题是当一个新的套接字连接时我没有看到任何护照用户,所以我一定犯了一个错误。
以下是带有会话信息的请求部分:
这是我尝试与 websockets 共享会话的方法:
编辑,护照代码添加如下:
node.js - 使用 Windows 凭据的 Node.js Websocket
我正在尝试创建与使用自签名 SSL 证书的服务器的安全 websocket 连接。我已将它们作为受信任的证书添加到我的 Windows 机器中,但是当我运行 node.js 应用程序时,我仍然得到 SELF_SIGNED_CERT_IN_CHAIN。经过一番挖掘,我发现 node.js 默认不使用 Windows 证书。我怎样才能让它使用 websockets 的 windows 证书?我正在使用“ws”模块。