簡體   English   中英

Socket.io不起作用

[英]Socket.io doesn't work

這是我的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時,我在控制台中看不到``某人已連接''這句話,這是問題所在還是什么原因?

我在服務器上設置了代碼,但將index.html文件的腳本源更改為:

<script src="/socket.io/socket.io.js"></script>

我可以記錄服務器上someone connectedsomeone connected

這取自socket.io網站上的頂級示例。 我猜想文件路徑解析必須在socket.io服務器源代碼中的某個地方處理。

另請參閱: 找不到socket.io.js

試試這個,對我有用

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');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM