почему jquery не работает в serveride node.js? - PullRequest
0 голосов
/ 27 августа 2018

код клиента 1

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <script src="/socket.io/socket.io.js"></script>
  <title>Document</title>
</head>

<body>
  <button id="my_button">sending msg to same room client</button>

  <script>
    var roomNumber = prompt('what`s your roomNumber.');

    const socket = io.connect();

    socket.emit('joinABCD', {
      roomNumber: roomNumber,
    });

    **
    var button = document.getElementById("my_button");
    button.onclick = function() {
      socket.emit('message', {
        message: 'can you see me roomnumber people?'
      });
    }; **

    //no jquery accept in node.hs . ==>how to soleve?  


    socket.on('message2', (data) => {
      alert(data.message);
    });
  </script>
</body>

</html>

код узла сервера

const express = require('express');
const http = require('http');
const socketIo = require('socket.io');

const app = express();

// app.use(express.static(`${__dirname}/public`));
const server = http.createServer(app).listen(2000, () => {
  console.log('http://127.0.0.1:2000');
});

app.get('/', (request, response) => {
  response.sendFile(`${__dirname}/public/creatingRoom.html`);
});

const io = socketIo.listen(server);

io.sockets.on('connection', (socket) => {
  let roomNumber = null;

  socket.on('joinABCD', (data) => {
    roomNumber = data.roomNumber;
    socket.join(data.roomNumber);
  });

  socket.on('message', (data) => {
    io.sockets.in(roomNumber).emit('message2', {
      message: `${data.message}`,
    });
  });
});

код клиента1 и код сервера, соответствующие друг другу, после чего он работаетбез проблем.но если я изменил code1 на code2, это не сработает.код2 ниже

из код клиента1

var button = document.getElementById("my_button");
button.onclick = function() {
  socket.emit('message', {
    message: 'can you see me roomnumber people?'
  });
};

до код клиента2

$("#my_button").click(function() {
  socket.emit('message', {
    message: 'can you see me roomnumber people?'
  });
});

как мне работать с источником jqueryв серверной части.Пожалуйста, научите меня, как это сделать.некоторые люди говорили мне, что мне нужно модуль cheerio это правильно?

1 Ответ

0 голосов
/ 27 августа 2018
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    **<script src="https://code.jquery.com/jquery-3.3.1.js" integrity="sha256-2Kok7MbOyxpgUVvAk/HJ2jigOSYS2auK4Pfzbm7uH60=" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/2.1.1/socket.io.slim.js"></script>
    <title>Document</title>**
</head>
<body>
    <button>메시지 전송</button>
    <script>
    var roomNumber = prompt('방번호를 입력하세요.');

     const socket = io.connect();
     socket.emit('joinABCD',{
         roomNumber:roomNumber,
     })

     $(document).ready(function(){
         $('button').click(function(){
             socket.emit('message',{
                 message: '우리방 사람들 보이세요?',
             });
         });
     });


     socket.on('message2' ,(data) => {
         alert(data.message);
     });
    </script>
</body>
</html>

Причина, по которой jquery не работает, заключается просто в том, чтобы не помещать cdn в код скрипта.

, и я понял тег скрипта websocket src code src = "/ socket.io / socket.io.js "никогда не означает, что настоящий src, но sudo src, меня это смущает.

/ socket.io / socket.io.js сам код CDN

это означает почтито же самое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...