可能是一个愚蠢的问题,但服务器似乎无法收到客户发送的消息,任何人都可以提供帮助吗?
非常感谢 杰施
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');
});
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');
答案 0 :(得分:1)
在客户端,您通过密钥发出: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);
});