Shl*_*rtz 5 firefox google-chrome websocket node.js socket.io
我正试图弄清楚我的代码/设置有什么问题.基本上我想从客户端向服务器发送消息.以下适用于除 FF(11)和chrome(18.0.1025.152 m)之外的所有浏览器.
这是一些信息:
服务器代码:
var io = require('C:/Users/shlomis/node_modules/socket.io/lib/socket.io').listen(8080);
io.sockets.on('connection', function (socket) {
socket.on('my event', function (msg) {
console.log("DATA!!!");
});
});
Run Code Online (Sandbox Code Playgroud)
没有完整的路径,我找不到要求的方法
客户代码:
<!DOCTYPE html>
<html lang="en">
<head>
<title>Hello World!</title>
<meta charset="utf-8">
<script src="http://localhost:8080/socket.io/socket.io.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
var socket = io.connect('http://localhost:8080');
$("#button").click(function() {
socket.emit('my event' ,"Hello World!");
})
})
</script>
</head>
<body>
<button type="button" id='button'>Send Message</button>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
模块版本:
C:\Users\shlomis>npm ls
mukhin_chat@0.0.1 C:\Users\shlomis
??? express@2.5.9
? ??? connect@1.8.6
? ? ??? formidable@1.0.9
? ??? mime@1.2.4
? ??? mkdirp@0.3.0
? ??? qs@0.4.2
??? socket.io@0.9.5
??? policyfile@0.0.4
??? redis@0.6.7
??? socket.io-client@0.9.5
??? active-x-obfuscator@0.0.1
? ??? zeparser@0.0.5
??? uglify-js@1.2.5
??? ws@0.4.12
? ??? commander@0.5.2
? ??? options@0.0.3
??? xmlhttprequest@1.2.2
Run Code Online (Sandbox Code Playgroud)
节点日志:
C:\Users\shlomis>node C:\dev\wamp\www\AR\js\videoServer.js
info - socket.io started
debug - served static content /socket.io.js
debug - client authorized
info - handshake authorized 17502185141066845391
debug - setting request GET /socket.io/1/websocket/17502185141066845391
debug - set heartbeat interval for client 17502185141066845391
debug - client authorized for
debug - websocket writing 1::
debug - setting request GET /socket.io/1/xhr-polling/17502185141066845391?t=1334041653716
debug - setting poll timeout
debug - discarding transport
debug - cleared heartbeat interval for client 17502185141066845391
Run Code Online (Sandbox Code Playgroud)
chrome WS request(101 Switching Protocols):

chrome XHR请求:

更新:我添加了
socket.on('connect', function () {
console.log("connected");
});
Run Code Online (Sandbox Code Playgroud)
它永远不会在镀铬上燃烧.
那可能是什么错?请帮忙:)
我相信您为客户端使用了错误的 socket.io.js 文件?
https://github.com/LearnBoost/socket.io-client/tree/master/dist
您应该在存放客户端内容的文件夹中使用这些文件,即:
../js/socket.io.min.js
关于require的问题,你用的是npm吗?进入nodeJS项目文件夹并运行以下命令:
npm install socket.io
这应该安装到node_modules项目文件夹内的文件夹中,并且通过执行 arequire('socket.io');您应该能够访问该模块。
如果这不起作用,则您的节点安装可能已损坏。
PS:您的文件使用相同的端口吗?您似乎正在端口 8080 上寻找 socket.io 文件,然后连接到端口 8080 上的 nodeJS 进行套接字连接...
尝试使用另一个端口?
| 归档时间: |
|
| 查看次数: |
3610 次 |
| 最近记录: |