0
我将把我的php网页与node.js和socket.io集成在一起。 客户端可以连接到node.js服务器文件,但是socket.emit函数不能从客户端到服务器或返回。 这里是我的nodeClient.js文件:集成node.js,socket.io和php网页
var socket = io.connect('http://192.168.0.10:8080/index3.php');
$("#messageForm").submit(function() {
var nameVal = $("#nameInput").val();
var msg = $("#messageInput").val();
socket.emit('message', { name: nameVal, message: msg });
// Ajax call for saving datas
$.ajax({
url: "./ajax/insertNewMessage.php",
type: "POST",
data: { name: nameVal, message: msg },
success: function(data) {
}
});
return false;
});
socket.on('new message', function(data) {
var actualContent = $("#messages").html();
var newMsgContent = '<li> <strong>' + data.name + '</strong> : ' + data.message + '</li>';
var content = newMsgContent + actualContent;
$("#messages").append(newMsgContent);
});
这里是nodeServer.js文件:
var socket = require('socket.io');
var express = require('express');
var http = require('http');
var app = express();
var server = http.createServer(app);
var io = socket.listen(server);
io.sockets.on('connection', function(client) {
console.log("New client !");
client.on('message', function(data) {
console.log('Message received ' + data.name + ":" + data.message);
//client.broadcast.emit('message', { name: data.name, message: data.message });
io.sockets.emit('new message', { name: data.name, message: data.message });
});
});
server.listen(8080, function(){
console.log('listening on *:8080');
});
的Ajax的工作原理将数据存储在MySQL。每个连接的客户端都被识别为“新客户端!”。但客户端和服务器之间没有消息通信。我的代码中可能存在什么问题。
我改变了代码,但没有工作...... – Ahad 2014-09-22 17:18:26