服务器无法从客户端获取消息

Server not able to get message form Client

本文关键字:获取 消息 客户端 服务器      更新时间:2023-09-26

可能是一个愚蠢的问题,但服务器似乎无法收到客户端发送的消息,任何人都可以提供帮助?

非常感谢杰西

服务器.js

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
var express = require('express');
var mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/sensor_db');
io.on('connection', function(socket){
  console.log('connection received from Provisioning ');
    // Message received from Client :
    socket.on('data', function(data) {
    console.log('Message from provision is : ' + ': ' + data);
  });
});
http.listen(4000, function(){
  console.log('listening on *:4000');
});

客户端.js

var io = require('socket.io-client');
var socket = io.connect('http://localhost:4000', {reconnect: true});
socket.on('connect', function(socket) {
  console.log('Connected!');
});
// Client send message :
socket.emit('jessi ann george');

在客户端,您通过密钥发出:jessi ann george 。但是,在服务器端,您只侦听密钥data。更改客户端以发出data或更改服务器以侦听jessi ann george

为了将实际数据与密钥发射一起从客户端传递到服务器,您需要添加一个数据对象,如下所示:

socket.emit('data', { key: 'value' });

服务器端,您将获取此"值"作为

socket.on('data', function(data) {
    'Message from provision is : ' + ': ' + data.key;
});

可以将一个简单的字符串作为数据传递,而不是javascript对象:

socket.emit('data', 'hello world');

并将其视为服务器端

socket.on('data', function(data) {
    'Message from provision is : ' + ': ' + data;
});
将数据

从服务器发送到客户端使用相同的语法。服务器端:

// read this in Adele's voice
socket.emit('server data', 'hello from the server side');

客户端:

socket.on('server data', function(data) {
    console.log('Received server data: ' + data);
});