SocketIO: связь между Node.js и Browser Client - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь отправить данные двунаправленно между сервером узла и клиентом браузера.

Я могу получить информацию с сервера Node на клиент браузера, но не наоборот.Я не понимаю, что я делаю неправильно, пожалуйста, помогите.

Узел server.js

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

app.use(express.static(__dirname + '/'))

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

// 1) Send initial data from node to browser
setInterval( function() {
  var msg = Math.random();
  socketTx.emit('Node', msg);
}, 1000);

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

// 4) Receive data from browser and log in node console
socketRx.on('Browser', function(msg){
  console.log(msg);
});

Браузер index.html

<html>
<head></head>

<body>
  <div id="message"></div>
  <script src="/socket.io/socket.io.js"></script>
  <script src="socket.js"></script>
</body>
</html>

Браузер socket.js

var socketRx = io();
var socketTx = io();

// 2) Receive initial data from node and display in browser
socketRx.on('Node', function(msg){
  document.getElementById("message").innerHTML = msg;

  // 3) Send data from browser back to node
  socketTx.emit('Browser', msg);
});

1 Ответ

0 голосов
/ 07 октября 2018

Я не знаком с socket.io, извините, если есть ошибки.
При ссылке на этот официальный документ я исправил server.js, как показано ниже.
Работаетхорошо в моей среде.Пожалуйста, попробуйте этот код.

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

app.use(express.static(__dirname + '/'))

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

// 1) Send initial data from node to browser
setInterval( function() {
  var msg = Math.random();
  socketTx.emit('Node', msg);
}, 1000);

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

// 4) Receive data from browser and log in node console
socketTx.on('connection', function(socket) {
  socket.on('Browser', function(msg){
    console.log(msg);
  });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...