gpt4 book ai didi

javascript - socket.io 无法正常工作

转载 作者:搜寻专家 更新时间:2023-11-01 00:11:57 25 4
gpt4 key购买 nike

编辑 1:

好的,服务器问题解决了。这是集成到我的项目中的完整服务器代码。

var http =              require('http');
var express = require('express');
var requestHandler = require(__dirname + '/app_modules/request-handler.js');
var app = express();

app.configure(function(){
app.use(express.static(__dirname + '/html'));
app.use(express.bodyParser());
});

var httpServer = http.createServer(app);
httpServer.listen(80);

var io = require('socket.io').listen(httpServer);

io.on('connection', function(socket){
socket.on('event', function(data){

});
socket.on('disconnect', function(){

});
});

下一个问题是在我的静态 html 页面中包含源 .js。这会引发错误:

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

Resource interpreted as Script but transferred with MIME type text/plain: "http://localhost/socket.io/socket.io". localhost/:206
Uncaught SyntaxError: Unexpected identifier socket.io:1
Uncaught ReferenceError: io is not defined

原始问题:

我正试图让这个笨蛋在测试服务器上工作。这是 1:1,直接来自 github 上的 socket.io 文档。

var app = require('express')();
var server = require('http').Server(app);
var io = require('socket.io')(server);

io.on('connection', function(socket){
socket.on('event', function(data){

});
socket.on('disconnect', function(){

});
});

server.listen(3000);

这是我得到的:

[INFO] 19:37:40 Restarting
[ERROR] 19:37:40 TypeError
TypeError: object is not a function
at Object.<anonymous> (/Users/me/work/github/node-forever-gui/server/socket_test.js:3:30)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Object..js (/usr/local/lib/node_modules/node-dev/lib/hook.js:52:17)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.require (module.js:364:17)
at require (module.js:380:17)
at Object.<anonymous> (/usr/local/lib/node_modules/node-dev/lib/wrap.js:47:1)
at Module._compile (module.js:456:26)

所有模块都通过 npm 安装。请帮我解决这个问题!

最佳答案

正如所声明的那样,io 不是一个函数,您不能将 HTTP 对象传递给它。请改用 listen 方法将 Socket.IO 附加到 HTTP 实例。

var io = require('socket.io').listen(server);

对于你的第二个错误,该文件是一个脚本,并且有一个扩展名。将 .js 添加到引用中。

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

关于javascript - socket.io 无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19323159/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com