如何使用socket.io客户端发出数据?

时间:2018-04-28 07:34:27

标签: node.js socket.io

所以我使用socket.io在服务器和客户端之间实时传输数据。

我能够在服务器和客户端之间建立连接,服务器能够正确地发出套接字客户端ID。

但是我无法从客户端向服务器发送数据。我的目标是让客户端向服务器发送数据以进一步处理,但我认为我做错了什么,我无法弄清楚是什么。

Server.js在这里......

var ioJSON = require('./io');
var serverPort = ioJSON.server.port;
var date = new Date();
var io = require('socket.io').listen(serverPort);


io.on('connection', function(socket){
    console.log('Client connected at '+date+' with socket ID: '+ socket.client.id);
    io.emit('socketClientID', socket.client.id);
});

和client.js在这里......

var io = require('socket.io-client');
var socket = io.connect("http://localhost:3000/", {
    reconnection: true
});


socket.on('socketClientID', function (socketClientID) {
    console.log('Connection to server established. SocketID is',socketClientID);
});

我的目标是将数据从客户端发送到服务器。我将非常感谢一些帮助。

由于

1 个答案:

答案 0 :(得分:1)

使用socket.emit(eventName, args)在客户端中发送数据:

client.js:

var io = require('socket.io-client');
var socket = io.connect("http://localhost:3000/", {
    reconnection: true
});

socket.on('socketClientID', function (socketClientID) {
    console.log('Connection to server established. SocketID is',socketClientID);
    socket.emit('hello_from_client', 123);
});

在服务器中用socket.on(eventName, callback)

收听事件

server.js:

var ioJSON = require('./io');
var serverPort = ioJSON.server.port;
var date = new Date();
var io = require('socket.io').listen(serverPort);

io.on('connection', function(socket){
    console.log('Client connected at '+date+' with socket ID: '+ socket.client.id);
    io.emit('socketClientID', socket.client.id);
    socket.on('hello_from_client', function(data){
        console.log(data);
    });
});