Nodejs socket.io 广播消息要怎么广播,主要是指和 FLASH那些客户端的通信的广播
Nodejs socket.io 广播消息要怎么广播,主要是指和 FLASH那些客户端的通信的广播
io.sockets.on(‘connection’,function(client){ client.broadcast.send({message: client.sessionId + ‘is now available’});
client.on('message', function(msg) { client.broadcast({ message: client.sessionId + ': ' + msg.message }); });
client.on('disconnect', function() { client.broadcast({ message: client.sessionId + ' is no longer available'}); });
});
我上面这种广告好像不行 我把 client.broadcast 变为 client.broadcast.emit(); 好像也还是不行 我前端是这样接收的 socket.on(‘message’, function(message){ } 接收不到广播
哪位兄长,有没有nodejs和客户端通信的文档或者DEMO,非websocket哦
要使用 Node.js 和 Socket.IO 进行广播消息,并且确保 Flash 客户端能够接收到这些消息,我们需要确保后端(Node.js)和前端(Flash 或其他客户端)都能正确处理消息的发送和接收。以下是一个简单的示例来演示如何实现这一点。
后端(Node.js)
首先,确保你已经安装了 socket.io 包:
npm install socket.io
然后,创建一个基本的服务器脚本来处理连接、消息和断开连接事件,并进行广播:
const io = require('socket.io')(3000);
io.on('connection', function(socket) {
    console.log('A user connected:', socket.id);
    // 广播消息给所有连接的客户端(除了发送消息的客户端)
    socket.broadcast.emit('message', { message: 'User ' + socket.id + ' has joined the chat' });
    socket.on('chat message', function(msg) {
        console.log('Message received:', msg);
        // 将消息广播给所有连接的客户端
        io.emit('message', { message: 'User ' + socket.id + ': ' + msg });
    });
    socket.on('disconnect', function() {
        console.log('User disconnected:', socket.id);
        // 当用户断开连接时,广播消息
        io.emit('message', { message: 'User ' + socket.id + ' has left the chat' });
    });
});
前端(Flash 或其他客户端)
假设你有一个 Flash 客户端或其他支持 WebSocket 的客户端。你需要一个库来处理 WebSocket 连接。例如,你可以使用 as3-websocket 库来处理 Flash 中的 WebSocket 连接。
以下是一个简单的 HTML/JavaScript 客户端示例:
<!DOCTYPE html>
<html>
<head>
    <title>Socket.IO Chat</title>
</head>
<body>
    <ul id="messages"></ul>
    <input id="m" autocomplete="off" /><button>Send</button>
    <script src="/socket.io/socket.io.js"></script>
    <script>
        var socket = io();
        document.getElementsByTagName('button')[0].addEventListener('click', function() {
            var msg = document.getElementById('m').value;
            socket.emit('chat message', msg);
            document.getElementById('m').value = '';
        });
        socket.on('message', function(data) {
            var item = document.createElement('li');
            item.textContent = data.message;
            document.getElementById('messages').appendChild(item);
        });
    </script>
</body>
</html>
解释
- 
后端:
- 使用 
io.on('connection', ...)监听新的连接。 - 使用 
socket.broadcast.emit()广播消息给除当前客户端外的所有客户端。 - 处理 
disconnect事件以通知其他客户端某个用户已离开。 
 - 使用 
 - 
前端:
- 使用 
socket.io-client连接到服务器。 - 发送和接收消息,并在页面上显示。
 
 - 使用 
 
这样,你的 Node.js 服务器可以与 Flash 客户端和其他 WebSocket 客户端进行有效的通信。
socket.broadcast.emit() 这个是向自己以外其他客户端发送消息的样子,
Broadcasting means sending a message to everyone else except for the socket that starts it.
Github 页面上提到了的: https://github.com/learnboost/socket.io
汗. 差点以为没全局发的, 上面链接里找到了
io.sockets.emit('this', { will: 'be received by everyone' });
https://github.com/learnboost/socket.io#sending-and-receiving-events
发现自己发的广播自己收不到,如何确定广播已经发送成功呢?
        
      
                    
                  
                    

