ws模块跟dgram模块
发布于 6 年前 作者 Helovebai 2717 次浏览 来自 问答

启动socket到底用的什么模块,我看到dgram的实例就是一个socket,但是却不能用,使用ws模块就能成功使用socket,但是在官网上又找不到ws模块的信息。求解释

5 回复

dgram是node官方的 https://nodejs.org/dist/latest-v8.x/docs/api/dgram.html ws是第三方的,找不到通信模块什么意思? ws 本身不就是么? ws的例子

const WebSocket = require('ws');
 
const ws = new WebSocket('ws://www.host.com/path');
 
ws.on('open', function open() {
  ws.send('something');
});
 
ws.on('message', function incoming(data) {
  console.log(data);
});

@im-here 那您知道怎么使用dgram调用socket么? 我调用过调用失败了。

@im-here 会报错 …

@Helovebai 调用? 这个是官网的例子,这里是创建了一个server,通信的话创建一个client连接到这个server,然后send message,在server端就能收到了

const dgram = require('dgram');
const server = dgram.createSocket('udp4');

server.on('error', (err) => {
  console.log(`server error:\n${err.stack}`);
  server.close();
});

server.on('message', (msg, rinfo) => {
  console.log(`server got: ${msg} from ${rinfo.address}:${rinfo.port}`);
});

server.on('listening', () => {
  const address = server.address();
  console.log(`server listening ${address.address}:${address.port}`);
});

server.bind(41234);
// server listening 0.0.0.0:41234

@Helovebai 1 楼给的是个demo ,你直接用肯定会报错,你得把 ws://www.host.com/path 替换成你实际的ws server才行呀

回到顶部