这是我的服务器端代码,用于创建与套接字的连接。我正在使用node.js代码,并在其中使用socket.io。
// ...
providers: [
// ...
{ provide: HTTP_INTERCEPTORS, useClass: AddHeaderInterceptor, multi: true },
//...
]
这是我的客户端代码,我使用普通的javascript作为客户端,并且我使用的是2.1.1版本的socket.io,我得到的是io notdefend错误,我对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');
})
答案 0 :(得分:4)
您的第一个脚本(使用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>
答案 1 :(得分:0)
由于我是Web开发的新手,这可能是错误的,但是我会尝试将您的脚本放在您导入socket.io.js的脚本下方
在函数中,您正在调用io,但是在调用它之前,它似乎没有被声明。
希望这行得通。