只关注客户端API(因为每种服务器端语言都有自己的API),下面的代码片段打开一个连接,为connect、disconnect和message事件创建事件侦听器,向服务器发回一条消息,然后使用WebSocket关闭连接。
// Create a socket instance
var socket = new WebSocket('ws://localhost:3000');
// Open the socket
socket.onopen = function(event) {
// Send an initial message
socket.send('I am the client and I\'m listening!');
// Listen for messages
socket.onmessage = function(event) {
console.log('Client received a message',event);
};
// Listen for socket closes
socket.onclose = function(event) {
console.log('Client notified socket has closed',event);
};
// To close the socket....
socket.close()
};
但是我在执行上面的代码段时出现错误:
参考错误:未定义WebSocket
我已经浏览了各种链接,如https://davidwalsh.name/websocket,关于如何实现WebSockets。但是他们都没有导入任何npm包。
**问题:**那么,如何实现WebSockets(客户端AngularJS)?我错过了什么?
5条答案
按热度按时间vmjh9lq91#
试试看
然后
npm i ws
然后重审这是我的案子
pkmbmrz72#
我把这个留给那些在node应用程序中遇到
@stomp/stompjs
包问题的人。添加这一行:
Object.assign(global, { WebSocket: require('ws') });
另外,不要忘记
npm install ws
8wtpewkr3#
您在问题中引用的代码是客户端代码。WebSocket可直接在浏览器中使用。
对于Node.js服务器端代码,请查看ws NPM package。
那么,如何在NodeJS上实现WebSockets(客户端)呢?
Node.js是服务器端的,而不是客户端的。
6tr1vspr4#
当你试图运行JavaScript时,通常你可以在浏览器或NodeJS中运行它。
浏览器和NodeJS是不同的JavaScript运行时。
WebSocket本身是一个应用层协议,你需要使用API来使用它。
目前(2019年12月5日),
大多数浏览器都支持WebSocket API,以便开发人员使用WebSocket。
NodeJS不提供任何OOTB API供开发人员使用WebSocket,您需要第三个库来使用WebSocket(例如https://github.com/websockets/ws)。
您遵循的示例是在浏览器中使用WebSocket API。
希望能帮上忙。
flvtvl505#
如果您在浏览器控制台上收到此错误,请务必检查拼写和大小写。确保“WebSocket”以大写字母开头。否则,它可能会抛出引用错误。