我一直在努力设置socket.io npm模块,我的浏览器能够与后端NodeJS脚本连接。但我不知道我哪里错了。我记得在控制台中看到以前的消息:
“Socket.io ..开始..”
但现在没有任何事情发生。下面是我的NodeJS代码:
var express = require('express');
var server = require('http').createServer(express);
var path = require('path');
var favicon = require('static-favicon');
var logger = require('morgan');
var cookieParser = require('cookie-parser');
var bodyParser = require('body-parser');
global.socket = require('socket.io')(server);
//global.socket = require('socket.io').listen(80, {log:true});
//socket.listen(80, {log:true});
在我的index.js文件中,我有一个捕获socket.io传入连接的函数。当我从浏览器尝试以下URL时:
http://localhost:3000/socket.io/socket.io.js
我收到错误消息:
Error: Failed to lookup view "error" in views directory "C:\amr\public" at Function.app.render
但是当我请求以下网址时:
http://localhost/socket.io/socket.io.js
似乎socket.io.js文件在浏览器上呈现:
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.io=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){
我不确定从浏览器或后端方面我是否可以看到我的网络套接字是否正常工作,我必须在HTML页面中包含哪些脚本网址才能使连接正常工作?
<script src="http://localhost:80/socket.io/socket.io.js"></script>
答案 0 :(得分:0)
您可能没有将socket.io客户端库公开给公众。如果您使用了快速生成器,只需将该文件复制并粘贴到yourproject/public
,然后将您的请求发送到localhost:3000/<insert socket.io clientside filename>
如果您没有使用快速生成器,请创建一个名为public的文件夹,然后在主项目文件中放置行app.use(express.static(__dirname + '/public'));
,然后执行上述操作
哦,你的错误指的是视图引擎无法找到错误打印的视图。解决这个问题,它会为您提供更多信息。