Nodejs SOCKET.ON 跟 SOCK.EMIT 的使用疑問

Nodejs SOCKET.ON 跟 SOCK.EMIT 的使用疑問

如圖,我要用SOCKET.ON 跟SOCKET.EMIT 來傳接訊息.但想問? ,?2 分別要用那一個呢? ?是用SOCKET.ON 嗎? ?2是用SOCKET.EMIT 嗎? IMG_0601.JPG

4 回复

当然可以!在Node.js中,socket.onsocket.emit 是用于处理Socket.IO通信的核心方法。它们分别用于接收和发送消息。下面是详细的解释和示例代码。

socket.on

socket.on 用于监听特定事件并执行相应的回调函数。例如,你可以用它来监听客户端连接、断开连接,或者接收来自客户端的消息。

示例代码:

const io = require('socket.io')(server);

io.on('connection', (socket) => {
    console.log('A user connected');

    // 监听客户端发送的 "message" 事件
    socket.on('message', (data) => {
        console.log('Message received:', data);
        
        // 可以在这里处理接收到的数据,并决定是否向客户端发送响应
        socket.emit('response', { message: 'Hello from server!' });
    });

    // 监听客户端断开连接的事件
    socket.on('disconnect', () => {
        console.log('User disconnected');
    });
});

socket.emit

socket.emit 用于向客户端发送数据或触发一个自定义事件。客户端可以通过 socket.on 来监听这些事件并处理接收到的数据。

示例代码:

// 在服务器端发送消息给客户端
socket.emit('message', { message: 'Hello from server!' });

// 或者触发一个自定义事件
socket.emit('customEvent', { data: 'Some custom data' });

客户端示例

为了更好地理解,这里是一个简单的客户端示例,展示了如何使用 socket.onsocket.emit

<!DOCTYPE html>
<html>
<head>
    <title>Socket.IO Example</title>
    <script src="/socket.io/socket.io.js"></script>
    <script>
        const socket = io();

        // 当客户端连接成功时触发
        socket.on('connect', () => {
            console.log('Connected to server');
            
            // 向服务器发送消息
            socket.emit('message', { message: 'Hello from client!' });
        });

        // 监听来自服务器的消息
        socket.on('message', (data) => {
            console.log('Message from server:', data);
        });

        // 监听来自服务器的响应
        socket.on('response', (data) => {
            console.log('Response from server:', data);
        });
    </script>
</head>
<body>
    <h1>Socket.IO Example</h1>
</body>
</html>

总结

  • socket.on 用于监听事件并执行相应的回调函数。
  • socket.emit 用于向客户端发送数据或触发自定义事件。

希望这些示例代码能帮助你更好地理解和使用 socket.onsocket.emit。如果你有任何进一步的问题,请随时提问!


socket.emit用来产生一个事件,socket.on用来接收一个事件。 黑板不错。 我用socket.io做了个“仿QQ”应用,里面用到这两个命令。 如下: https://cnodejs.org/topic/54646e6b88b869cc33a97928#5464813788b869cc33a9793d

因為這是我的畢業題目 這語言也是因為這畢業題目而去接觸的 是新鮮人 真的很抱歉 麻煩你了

在Node.js中,socket.onsocket.emit 是用于处理Socket.IO通信的主要方法。它们分别用于不同的场景:

  1. socket.on:用于监听客户端或服务器端发送的消息。

    • 示例代码:
      // 服务器端
      io.on('connection', (socket) => {
        socket.on('client-message', (data) => {
          console.log('Received message:', data);
          // 可以在这里对消息进行处理,并通过其他方式(如socket.emit)回应客户端
        });
      });
      
      // 客户端
      socket.on('server-message', (data) => {
        console.log('Server said:', data);
      });
      
  2. socket.emit:用于向客户端或服务器发送消息。

    • 示例代码:
      // 服务器端
      io.on('connection', (socket) => {
        socket.emit('server-message', { message: 'Hello from server!' });
      });
      
      // 客户端
      socket.emit('client-message', { message: 'Hello from client!' });
      
  • ? 应该是用 socket.on 来监听消息。
  • ?2 应该是用 socket.emit 来发送消息。

通过以上方法,你可以实现客户端与服务器之间的双向通信。

回到顶部