服务器.js
var express = require('express');
var app = express();
var server = require('http').createServer(app);
var io = require('socket.io')(server);
app.use(express.static(__dirname + '/public'));
io.on('connection', function(client) {
console.log('Client connected...');
client.on('join', function(data) {
console.log(data);
io.emit('messages', 'Hello');
});
});
index.html
<script>
var socket = io.connect('http://localhost:7777');
socket.on('connect', function(data) {
socket.emit('join', 'Hello World from client');
});
socket.on('messages', function(data) {
alert(data);
});
</script>
我尝试实现非常基本的 Socket.io。
但是,从客户端到服务器的数据发送是可用的,但从服务器到客户端的数据发送不工作。
在运行 server.js 的命令中,打印“Hello World from client”。但是,警报窗口在网络浏览器中不起作用。(我也尝试过console.log)。
如何解决这个问题?
已编辑
我已将 server.js 代码放入 app.get('/', function(req, res)){ ... } 然后,它就不起作用了。为什么它在 app.get 中不起作用?
最佳答案
试试这个,我希望它有效:
io.on('connection', function(client) {
console.log('Client connected...');
client.on('join', function(data) {
console.log(data);
io.emit('join', data); //this code sending data from server to client
});
});
关于socket.io 从服务器到客户端的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42618720/