gpt4 book ai didi

javascript - 执行 socket.io 聊天示例 Node.js 时出错

转载 作者:行者123 更新时间:2023-12-02 17:16:44 25 4
gpt4 key购买 nike

刚刚开始学习 Node.js 的多人游戏功能:

使用windows 7、npm安装node.js及组件我遇到了一些让我生气的问题

var io = require('socket.io')(http);

抛出错误:

D:\projects\node\chat\index.js:3
var io = require('socket.io').(http);
^
SyntaxError: Unexpected token (
at Module._compile (module.js:439:25)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:901:3

有时更奇怪的是无法处理或没有定义此类方法等。

在浏览器客户端,以下脚本不起作用

<script>
var socket = io();
$('form').submit(function(){
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
socket.on('chat message', function(msg){
$('#messages').append($('<li>').text(msg));
});
</script>

正在抛出(不是错误),而是您在网络中执行的每个操作的消息:

debug - served static content /socket.io.js

经过大量努力,我找到了答案中分享的两个简单修复

最佳答案

我可能在这里有所偏差,因为我自己仍在学习 Node ,但在我看来,答案比当前接受的(2014.7.21)建议的更简单;你不应该在 require('socket.io')(http); 之间有一个 . 这表明它是某种require 返回的对象中的匿名函数实际上是需要调用的构造函数。

它应该看起来像这样:

var io = require('socket.io')(http);

我不确定你的第二个问题的解决方案,因为我没有遇到过。但我确实发现我需要将 jquery 函数封装在 .ready() 中,这是标准做法。结果如下所示:

var socket = io();
$(function () {
socket.on('chat message', function (msg) {
$('#messages').append($('<li>').text(msg));
});
$('#chatForm').submit(function () {
socket.emit('chat message', $('#m').val());
$('#m').val('');
return false;
});
});

关于javascript - 执行 socket.io 聊天示例 Node.js 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24367184/

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