这是我的server.js:
var app = require('express')();
var server = require('http').Server(app).listen(8080,function(){
console.log('working');
});
var io = require('socket.io')(server);
app.get('/',function(req,res){
res.sendFile(__dirname+'/index.html');
});
io.on('connection',function(socket){
console.log('someone connected');
});
这是我的index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<script src="node_modules/socket.io-client/socket.io.js"></script>
<script src="http://code.jquery.com/jquery-1.11.1.js"></script>
<script>
var socket = io();
</script>
</body>
</html>
我认为我在网站上做得非常正确,但是当我在节点上运行并查看localhost:8080时,我无法在控制台中看到“有人连接”的句子。问题出在哪里或者可能出现什么问题?< / p>
答案 0 :(得分:2)
我在服务器上设置了代码,但将index.html
文件的脚本源更改为:
<script src="/socket.io/socket.io.js"></script>
我可以在服务器上记录someone connected
。
这取自socket.io website的顶部示例。我想文件路径解析必须在socket.io
服务器源代码中的某处处理。
答案 1 :(得分:0)
试试这个,它为我工作
Server.js(服务器端)
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
app.get('/', function(req, res) {
res.sendFile(__dirname + '/index.html');
console.log(__dirname + " dir name");
});
io.on('connection', function(socket) {
socket.on("join", function(name) {
});
socket.on('disconnect', function() {
});
});
http.listen(8080, function() {
console.log('listening on *:8080');
});
在客户端
var socket = io.connect("http://localhost:8080");
socket.on('connect', function() {
//connect
});
socket.emit("join", 'user1');