我有一个场景,我需要使用nodejs和创建一个非常简单的文本聊天Websocket。
我已经准备好一切并开始工作。
我现在需要允许用户在 websocket connectionURL 中发送一个参数。
像这样: websocket = new WebSocket("ws://test-website.net:8080/?id=55");
在我的研究中,我遇到了很多类似的问题,并发现我可以像上面的例子一样在 URL 中传递参数。
然而,他们没有提及或解释如何得到这个参数(55在这个例子中)server.js
wss.on('connection', function(ws) {
///I need to get the parameter here////
});
Run Code Online (Sandbox Code Playgroud)
有人可以就这个问题提出建议吗?
提前致谢。
我在我的项目中使用 HTML5 websocket 和 nodejs 来创建一个简单的聊天。
到目前为止,一切都按预期进行。
但是,我需要弄清楚如何检测已连接的用户是否以某种方式失去连接,特别是他们是否关闭浏览器等。
我尝试了以下代码。
我可以像这样成功连接:
wss.on('connection', function(ws, req) {
//do my stuff here/////
console.log('connection started');
});
Run Code Online (Sandbox Code Playgroud)
但是,当我通过关闭浏览器断开连接时,我在控制台中看不到任何内容。
我使用此代码来检测连接关闭:
wss.on('closed', function(ws) {
console.log('connection closed');
});
Run Code Online (Sandbox Code Playgroud)
如果我遗漏了什么或做错了什么,有人可以告诉我吗?
提前致谢。
编辑:
这似乎有效:
ws.on("close", function() {
console.log("closed");
});
Run Code Online (Sandbox Code Playgroud) 我正在尝试html5 canvas使用websockets和实时流式传输 a 的内容nodejs。
html5 画布的内容只是一个视频。
到目前为止我所做的是:
我将画布转换为blob,然后blob URL使用 websockets获取该URL 并将其发送到我的 nodejs 服务器。
我得到这样的 blob URL:
canvas.toBlob(function(blob) {
url = window.URL.createObjectURL(blob);
});
Run Code Online (Sandbox Code Playgroud)
blob URL 是按视频帧生成的(准确地说是每秒 20 帧),它们看起来像这样:
blob:null/e3e8888e-98da-41aa-a3c0-8fe3f44frt53
Run Code Online (Sandbox Code Playgroud)
然后我通过 websockets 从服务器获取那个 blob URL,这样我就可以用它来将它绘制到另一个画布上供其他用户查看。
我确实搜索了如何从 blob URL 绘制到画布上,但我找不到任何与我想要做的事情相近的东西。
所以我的问题是:
这是做我想要实现的目标的正确方法吗?任何利弊将不胜感激。
有没有其他更有效的方法来做到这一点,或者我走在正确的道路上?
提前致谢。
编辑:
我应该提到我不能在这个项目中使用 WebRTC,我必须用我所拥有的来做这一切。
为了让我现在所处的每个人都更容易,这就是我尝试使用 websockets 在画布中显示我上面提到的 blob URL 的方式:
websocket.onopen = function(event) {
websocket.onmessage = function(evt) {
var val = evt.data;
console.log("new data "+val);
var canvas2 = document.querySelector('.canvMotion2');
var …Run Code Online (Sandbox Code Playgroud)