这是我的服务器端代码,用于创建与socket的连接。我正在使用node.js代码并使用socket.io。
const path = require('path');
const http = require('http');
const express = require('express');
const socketIO = require('socket.io');
const port = process.env.PORT || 3000;
var app = express();
var server = http.createServer(app);
var io = socketIO(server);
io.on('connection', (socket) => {
console.log('New user connected');
})
这是我的客户端代码我使用普通的javascript作为客户端,我使用2.1.1版本的socket.io,我得到io不是defiend错误,我是socket.io非常新的请帮助我这一个。
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
</head>
<body>
<script>
$(document).ready(function(){
var socket = io('http://localhost:3000');
console.log("Socket connected"+socket.connected);
socket.on('notification', function(value){
//insert your code here
});
});
</script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
</body>
</html>
您的第一个脚本(使用io
的脚本)在您的其他脚本(jQuery和Socket脚本)之前运行。像这样移动你的脚本:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<script src="http://localhost:3000/socket.io/socket.io.js"></script>
<script>
$(document).ready(function() {
var socket = io('http://localhost:3000');
console.log("Socket connected" + socket.connected);
socket.on('notification', function(value) {
//insert your code here
});
});
</script>
由于我是Web开发新手,这可能是错误的,但我会尝试将脚本放在导入socket.io.js的脚本下面
在您的函数中,您调用io但在调用它之前似乎没有声明。
希望这有效。