Node.js WebSockets发送消息

时间:2018-05-10 12:49:40

标签: node.js websocket messaging

我正试图了解WebSockets如何在Node.js中运行,但我在发送邮件时遇到了一些麻烦。

我的WebSocket服务器配置如下(index.js)

var ws = require("ws");
var wsserver = new ws.Server ({
   server: httpserver,
   port: 3030
});

wsserver.on (
   "connection", function connection(connection) {
      console.log("connection");
   }
);
wsserver.on (
   "open", function open(open) {
      console.log("open");
   }
);
wsserver.on (
   "message", function message(message) {
      console.log("message");
   }
);

这似乎工作正常,因为我可以使用

建立连接
var wscon = new WebSocket("ws://192.168.20.88:3030");

然后它给我服务器上的连接输出。如果我尝试使用send虽然似乎没有发生任何错误消息

wscon.onopen = function(open) {
  wscon.send("test message");
}

我必须遗漏一些东西,但我不知道是什么

1 个答案:

答案 0 :(得分:1)

哪种依赖对我有用?

我一直在使用socketIO一段时间,它非常适合Node.JS API /服务器。这个框架有数百万个在线教程,我会告诉你一个。

如何安装?

如果您使用NPM作为Node.JS中的包管理器,只需使用以下命令:

npm install --save socket.io

如果你正在使用纱线,你可以按如下方式安装socketIO:

yarn add socket.io
  

设置套接字服务器:

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

// Used for serving the HTML page (if used)
app.get('/', function(req, res){
  res.sendFile(__dirname + '/index.html');
});

// Listen for new connections
io.on('connection', function(socket){
  console.log('a user connected');
});

http.listen(3000, function(){
  console.log('listening on *:3000');
});

现在在index.html中,我在:

之前添加了以下代码段
<script src="/socket.io/socket.io.js"></script>
<script>
  var socket = io();
</script>
  

在您的前端,您可以通过调用以下函数/代码来通过套接字触发事件:

<script src="/socket.io/socket.io.js"></script>
<script src="https://code.jquery.com/jquery-1.11.1.js"></script>
<script>
  $(function () {
    var socket = io();
    $('form').submit(function(){
      socket.emit('chat message', $('#m').val());
      $('#m').val('');
      return false;
    });
  });
</script>
  

在我们的案例中,我们发出了一个名为聊天消息的事件。因此,为了通过套接字连接接收值,我们在后端/ api中调用以下代码:

io.on('connection', function(socket){
  socket.on('chat message', function(msg){
    console.log('message: ' + msg);
  });
});

这基本上就是你如何在库SocketIO中使用socket。希望这有助于解决您的问题!