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