- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我第一次在我的项目中使用node.js,并且我在 WAMP 上运行我的项目。
我已经创建了app.js,我的app.js的代码是:
var http = require("http");
var url = require("url");
var qs = require("querystring");
// Create an HTTP server for *socket.io* to listen on
var app = http.createServer();
var io = require("socket.io").listen(app);app.listen(8080);
var authorisedIPs = [
'127.0.0.1',
'192.168.0.204'
];
var clients = {};
function handler(req, res){
var remoteAddress = req.socket.remoteAddress;
if(authorisedIPs.indexOf(remoteAddress) >= 0) {
try{
if(req.method == 'GET'){
var body = '';
req.on('error',function(){
res.writeHead(500, {"Content-Type": "text/plain"});
res.end("Error");
});
req.on('data',function(data){
body += data;
if(body.length > 1e6){
response.writeHead(413, {'Content-Type': 'text/plain'});
req.connection.destroy();
}
});
req.on('end',function(){
var returned = JSON.parse(body);
var client_name = returned.admin_id+'_'+returned.user_id+'_'+returned.login_id;
var channel = returned.channel;
var event = returned.status;
for(var keys in clients){
if(keys == client_name){
var socket_to_send = clients[keys];
socket_to_send.emit(channel,body);
}
}
if(typeof socket_to_send != 'undefined'){
}
});
}
res.writeHead(200, {"Content-Type": "text/plain"});
res.end("ok");
}
catch(error){
res.writeHead(500, {"Content-Type": "text/plain"});
res.end("Error");
}
}
else{
res.writeHead(401, {"Content-Type": "text/plain"});
res.end("Unauthorised");
}
}
function sendData(socket){
var thisRef = this;
var currentTimeObj = new Date();
var formattedTime = currentTimeObj.getDate() + "-" +currentTimeObj.getMonth() + "-" + currentTimeObj.getFullYear() + " " + currentTimeObj.getHours() + ":" + currentTimeObj.getMinutes() + ":" + currentTimeObj.getSeconds();
socket.emit('timeUpdate', { currentTime: formattedTime});
setTimeout(function(){
sendData.call(thisRef,socket)
},1000);
}
function testfunc(socket){
socket.emit('testEvent', { message: 'testing...'});
}
function testfunc1(socket){
socket.emit('testEvent', { message: 'testing1...'});
}
io.sockets.on('connection', function (socket) {
socket.emit('get_name', {});
socket.on('forceDisconnect',function(data12){
for(var keysd in clients){
if (keysd == data12.my_name) {
delete clients[keysd];
socket.disconnect();
}
}
});
socket.on('take_name', function (data11) {
clients[data11.my_name] = socket;
});
});
function getsplitText(string,splitter,index){
return_arr = string.split(splitter);
return return_arr[index];
}
http.createServer(handler).listen(8080, '192.168.0.204');
我的客户端 html 是:
<!DOCTYPE html>
<html>
<head>
<title>Server Time poller</title>
<meta charset="UTF-8">
</head>
<body>
<div id="statusMessageDiv">
</div>
<div id="serverTimeDiv"></div>
</body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"> </script>
<script src="192.168.0.204:3000/socket.io/socket.io.js"></script>
<script>
$(document).ready(function(){
alert('hello');
var socket = io.connect('http://192.168.0.204:8080');
socket.on('testEvent',function(data){
$("#statusMessageDiv").html(data.welcomeMessage);
socket.emit('testRevert',{message:'acknowledged'});
});
socket.on('timeUpdate', function (data) {
$("#serverTimeDiv").html(data.currentTime);
});
});
</script>
</html>
当我在控制台上运行app.js时,我得到了响应
info - socket.io started.
但是当我在浏览器中打开index.html时,我收到警报“hello”,然后出现错误
ReferenceError: io is not defined
var socket = io.connect('http://192.168.0.204:8080');
请帮忙。
最佳答案
经过正确检查后,我认为问题出在您的端口上:
您在此处使用端口 3000: <script src="192.168.0.204:3000/socket.io/socket.io.js"></script>
并且您的应用程序在端口 8080
上运行
关于php - 如何在 wamp 上运行套接字以及本地主机使用哪个端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23357095/
如何在不丢失配置的情况下升级 WAMP 服务器?我当前的版本是 WAMP 3.0.8,我想将其升级到 WAMP 3.1.0。 来自 WAMP 3.0.8 Apache 2.4.23 MySQL 5.7
我已经尝试通过路由器进行端口转发,并且还禁用了我的防火墙。 我还编辑了 httpd.conf。在那里我改变了 Listen 80 到 Listen 8080 我还从 localhost:80 更改了
无论如何,我可以在 Windows 7 计算机上的 USB 上使用 PHP、mySQL、apache、phpmyadmin 吗?询问的原因是我没有足够的权限在计算机上安装 XAMPP 之类的软件包,我
已关闭。这个问题是 off-topic 。目前不接受答案。 想要改进这个问题吗? Update the question所以它是on-topic用于堆栈溢出。 已关闭10 年前。 Improve th
我在 Web 浏览器中使用 autobahn-js (0.11.2),在后端使用 crossbar 消息路由器 (v17.2.1)。 在网络断开的情况下(例如由于网络不佳),autobahn-js 客
我正在使用 Wamp 2.2,编辑 conf/extra/httpd-vhosts.conf 编辑此文件以添加 VirtualHosts ,但是当我在 httpd.conf 中取消注释行时 code>
作为我用来验证为站点完成的编程的一些自动部署 + 测试脚本的一部分,我有一些更新 Apache 配置文件的脚本。我想以编程方式重新启动 WAMP,以使更改生效。有没有好的方法可以做到这一点? 脚本是p
您好 Java 代理开发框架开发人员!我想将 WAMP 与 JADE 一起使用,我可以这样做吗,很简单,因为我非常反对 WAMP。还是 JADE 只推荐与 Java 相关的技术进行接口(interfa
我安装了wamp2.4。我卸载了然后安装wamp2.5。现在我在 "C:\wamp\bin\mysql" 中有 2 个文件夹 mysql5.6.12 mysql5.6.17 我将所有数据库文件夹从my
我有一个运行项目的本地 WAMP 服务器 (c:\wamp\www\myProject)。我想使用 PhpStorm 编辑和调试这个项目。我想我必须在 PhpStorm 中创建一个项目并将我的源代码导
我在Windows 8上安装了wamp,我关闭了Skype端口80,我使用了桌面版本的Skype。现在我看不到我的本地主机或 phpmyadmin。哎呀! Google Chrome 无法连接到本地主
我无法删除 C 盘中的 WAMP/bin/mysql 文件夹,每当我按下删除键时,都会出现一个对话框:该操作无法完成,因为该文件已在另一个程序中打开。关闭文件并重试。注意:我已经卸载了 wamp 服务
我想跟踪执行查询所需的时间我提到了 this post但我没有时间只得到查询。在使用我的 Web 应用程序一段时间后,使用 select、update 和 insert 查询(不是来自控制台,而是真正
很长一段时间以来,我一直在使用 php 5.3.5 安装 wamp现在我正在使用 Symfony2.1,需要国际扩展所以我下载并安装了 php 5.4.6,第一次一切正常 但现在我在一个新项目上,我需
我有一个快速的问题。我是第一次尝试使用 Laravel。为此,我正在使用 Wamp。我不知道这是否重要,但我在这个地址设置了 wamp 的 DocumentRoot : DocumentRoot "C
我刚刚下载并安装了 WAMP,当我打开它时,我收到一个警告框 Aestan Tray Menu has stopped working -"A problem has caused program t
我正在尝试从我的本地网站建立 wamp 连接。我在服务器端使用 Ratchet/Wamp,在客户端使用 autobahn|js。该服务运行良好,我能够连接,正在服务器上触发 onOpen/onClos
我已经在我的 Windows 7 机器上下载并安装了 WAMP 服务器版本 2.1d。当我从开始菜单中选择“启动 WAMP 服务器”时,托盘图标出现,但没有任何功能。当我悬停时,工具提示告诉我 2 个
我以前从未遇到过 Wamp 的问题,找不到问题所在。我的 www 文件夹中有几个项目(运行 Windows 7)。 我的主机文件有一行 127.0.0.1 localhost未注释 当我去http:/
我已经在我的 Windows 8 上安装了 WAMP,现在出于某些原因我需要知道它是 32 位还是 64。浏览并查看“关于”和版本/许可证文件,但找不到任何地方。顺便说一下,它是 WAMPServer
我是一名优秀的程序员,十分优秀!